Archive system and data maintenance method

ABSTRACT

An archive system and method to maintain data in an object oriented programming environment. The system and method utilize a scoping model to ascertain the hierarchical relationship between data entities within the object oriented programming environment.

[0001] This application claims the benefit of the filing date ofProvisional Application No. 60/293,204 filed on May 25, 2001.

FIELD OF THE INVENTION

[0002] The present invention relates to the management and distributionof electronic media particularly, although not exclusively, over anetwork.

BACKGROUND OF THE RELATED ART

[0003] With the advent of the computer and particularly the networkingof computers, the ability of organisations and individuals to rapidlygenerate, store, access and process data has increased dramatically. Inthe case of many organisations, the ability to manage and leverage datahas become a central aspect of their business.

[0004] Not surprisingly, considerable effort and development hasoccurred in those computational and software fields related to thegeneration, storage, accessibility and processing of data. Nevertheless,it has been the case that as organisations have moved to a distributedarchitecture paralleling the development of the Internet, the complexityinvolved in providing solutions across different platforms and operatingsystems has become ever more challenging. Consequently, developers havetended to concentrate on limited solutions for preferred platforms andoperating systems. Similarly, organisations have sought to standardisethe tools they use to leverage data.

[0005] Unfortunately, the pull exerted by those distributed computingmodels currently finding favour is in direct contradiction to thesolutions adopted by the majority of developers and those responsiblewithin organisations for the selection of tools. Consequently, themanagement and distribution of data, particular of high value mediacontent remains problematic.

BRIEF SUMMARY

[0006] Thus, according to an aspect of the preferred embodimentsdescribed below, there is provided a method of maintaining data in anobject oriented programming environment comprising defining a set ofpersistent data entities each having a predetermined level ofabstraction and scope wherein a related set of data entities comprises ahierarchical plurality of levels such that the scope identified at ahigher level of abstraction encompasses the scope of those entities at alower level of abstraction.

[0007] Thus, by making the relationship between data entities explicitthat is by preferably defining a plurality of related data entities at acommon level of abstraction all said entities being encompassed by thescope of those related entities of a higher level of abstraction andemploying a modular architecture allowing for partial specification ofproperties by defining the level of abstraction and scope using metadataproperties, more efficient run-time resolution of abstract or partialreferences may be achieved. Conveniently, the architecture permits theutilisation of property names and values which are mnemonic andmeaningful for humans whilst remaining suitable for processing bycomputer.

[0008] Previously, each distinct data entity was assigned a single,monolithic identifier either a physical storage address or an abstractpointer resolvable to a physical storage address. Such approaches arewell known to be fragile, non-portable and thus hamper interoperabilityin multi-system environments. Furthermore, where scoping/hierarchicalrelationships are defined in an external mapping solution, such asolution has no mnemonic qualities and imposes additional processingcomplexity at run-time. Whereas, the hierarchical relationship providedin present method obviates the need for the external mapping needed forresolving and/or deriving data entities thereby reducing theimplementation burden on a system.

[0009] According to a further aspect of the preferred embodiments, thereis provided an archival system comprising persistent storage for aplurality of data entities each having a predetermined level ofabstraction and scope wherein a related set of data entities comprises ahierarchical plurality of levels such that the scope identified at ahigher level of abstraction encompasses the scope of those entities at alower level of abstraction wherein said storage is distributed within anobject oriented programming environment.

[0010] Using such a system advantageously allows a hypertext link, forexample, to refer to a data entity and then let the run-time environmentdetermine the scope of the entity to retrieve based on user andenvironment configuration. Preferably, the sets of entities of lowerscope which are all realizations of the same entity of higher scopeshare that entity's identity as part of their own.

BRIEF DESCRIPTION OF THE DRAWINGS

[0011] In order to understand the present invention more fully, a numberof preferred embodiments thereof will now be described by way of exampleand with reference to the accompanying drawings, in which:

[0012]FIG. 1 is a block diagram of a network operating in accordancewith a framework of the preferred embodiments;

[0013]FIG. 2 is a schematic diagram illustrating the components of theframework of FIG. 1;

[0014]FIG. 3 is a block diagram of an identity architecture of theframework of FIG. 1 and

[0015]FIG. 4 is a block diagram of a registry service of the frameworkof FIG. 1.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0016] The preferred embodiments relate to a Metia Framework thatdefines a set of standard, open and portable models, interfaces, andprotocols facilitating the construction of tools and environmentsoptimized for the management, referencing, distribution, storage, andretrieval of electronic media; as well as a set of core softwarecomponents (agents) providing functions and services relating toarchival, versioning, access control, search, retrieval, conversion,navigation, and metadata management.

[0017] A Metia Framework according to the preferred embodiments mayserve as the foundation for the realization of corporate documentationstrategy, upon which company wide tools and services operate.Preferably, it addresses the common requirements of all corporatebusiness units, while also allowing custom extensibility by specificbusiness units for special needs.

[0018] A Metia Framework architecture according to the preferredembodiments may be based on a standard HTTP 2 web server and is medianeutral, such that the particular encoding of any data is not relevantto storage by or interchange between agents. This does not mean thatspecific encoding or other media constraints may not exist for any givenenvironment implementing the framework, depending on the operatingsystem(s), tools, and processes used, only that the framework itselfaims not to impose any such constraints itself. Non-agent systems,processes, tools, or services that are utilized by an agent can still beaccessed via proprietary means if necessary or useful for any operationsor processes outside of the scope of the framework. Thus, frameworkbased tools and services can co-exist freely with other tools andservices utilizing the same resources. A Metia Framework according tothe preferred embodiments brings together both existing, legacy systemsas well as new solutions into a common, interoperable environment;maximizing the investment in current systems while reducing the cost andrisk of evolving and/or new solutions.

[0019] A Metia Framework according to the preferred embodiments may becomprised of a number of components, each defining a core area offunctionality needed in the construction of a complete production anddistribution environment. Each framework component is defined separatelyby its own specification, in addition to a top level frameworkspecification. The top level specification will be referred to as MetiaFramework for Electronic Media. The other framework components includeMedia Attribution and Reference Semantics (MARS), Generalized MediaArchive (GMA), Portable Media Archive (PMA), and Registry ServiceArchitecture (REGS).

[0020] MARS is a metadata specification framework and core standardvocabulary and semantics facilitating the portable management,referencing, distribution, storage and retrieval of electronic media.MARS is designed specifically for the definition of metadata for use byautomated systems and for the consistent, platform independentcommunication between software components storing, exchanging,modifying, accessing, searching, and/or displaying various types ofinformation such as documentation, images, video, etc. It is designedwith considerations for automated processing and storage by computersystems in mind, not particularly for direct consumption by humans;though mechanisms are provided for associating with any given metadataproperty one or more presentation labels for use in user interfaces,reports, forms, etc.

[0021] The GMA defines an abstract archival model for the storage andmanagement of data based solely on Media Attribution and ReferenceSemantics (MARS) metadata; providing a uniform, consistent, andimplementation independent model for information storage and retrieval,versioning, and access control. The GMA is a central component of theMetia Framework and serves as the common archival model for all managedmedia objects controlled, accessed, transferred or otherwise manipulatedby Metia Framework agencies.

[0022] The PMA is a physical organization model of a file system baseddata repository conforming to and suitable for implementations of theGeneralized Media Archive (GMA) abstract archival model. The PMA definesan explicit yet highly portable file system organization for the storageand retrieval of information based on Media Attribution and ReferenceSemantics (MARS) metadata. The PMA uses the MARS Identity metadataproperty values themselves as directory and/or file names, avoiding theneed for a secondary referencing mechanism and thereby simplifying theimplementation, maximizing efficiency, and producing a mnemonicorganizational structure.

[0023] REGS is a generic architecture for dynamic query resolutionagencies based on the Metia Framework and Media Attribution andReference Semantics (MARS), providing a unified interface model for abroad range of search and retrieval tools. REGS provides a generic meansto interact with any number of specialized search and retrieval toolsusing a common set of protocols and interfaces based on the MetiaFramework; namely MARS metadata semantics and either a POSIX or CGIcompliant interface. As with other Metia Framework components, thisallows for much greater flexibility in the implementation and evolutionof particular solutions while minimizing the interdependencies betweenthe tools and their users (human or otherwise).

[0024] Initially, it should be noted that in order to improve thereadability of the specification, sections that describe in detail allaspects of a particular component and that relate to the description ofthe embodiments described below, have been included at the end of thespecification. When appropriate, reference has been made in thedescription to these sections by a title, name, or function of thesection. These sections include Metia Framework for Electronic Media,Media Attribution and Reference Semantics (MARS), Portable Media Archive(PMA), Generalized Media Archive (GMA), and Registry ServiceArchitecture (REGS).

[0025]FIG. 1 shows a diagram of a system for information deliveryaccording to an exemplary preferred embodiment. A network 1 includes anHypertext Transfer Protocol (HTTP) web server 3 that may be accessible 4by production clients 5 operating a number of operating systems onvarious platforms, and a set of on-line distribution clients 7. Theon-line distribution clients 7 may include a wireless terminal 9utilizing Wireless Mark-up Language (WML). As such, the terminal 9 mayaccesses 6 the HTTP web server 3 indirectly via a WAP server 1, whichprovides the necessary translation 8 between HTTP and WML. The HTTP webserver 3 may further provide a Common Gateway Interface (CGI).

[0026] In addition to these physical elements of the network 1, dataexchanged with the HTTP web server 1 may also be exchangeable 10 with anAgent pool 13 made up of a number of core software components or agents13 a, 13 b, 13 c, 13 d providing services which will be elaborated uponbelow. Data exchanged 10 with the HTTP web server 3 by the Agent pool 13may be transferred 12 between agents 13 a-13 d. The Agent pool 13 mayhave additional connections. A connection 14 may exist to a customerdocumentation server 15 capable of providing both on-line 17 and hardmedia 19 access to users. Moreover, a connection 16 may exist to a setof one or more archives 21 which themselves may be monitored and managedthrough an on-line connection 18 to a remote terminal 23.

[0027]FIG. 2 shows a diagram of a conceptual level showing therelationships between framework elements according to an exemplarypreferred embodiment. A Media Attributions and Reference Semantics(MARS) 25 provides a core standard vocabulary and semantics utilizingmetadata for facilitating the portable management, referencing,distribution, storage and retrieval of electronic media. As will befurther described below, MARS 25 is the common language by whichdifferent elements of the preferred embodiments communicate. AGeneralized Media Archive (GMA) 27 provides an abstract archival modelfor the storage and management of data based on metadata defined by MARS25. At a physical level, a Portable Media Archive (PMA) 29 provides anorganizational model of a file system based data repository conformingto and suitable for implementations of the Generalized Media Archive(GMA) abstract archival model. A Registry Service Architecture (REGS) 31may be provided which permits dynamic query resolution by agenciesincluding users and software components or agents utilizing MARS 25,thereby providing a unified interface model for a broad range of searchand retrieval tools.

[0028] As noted previously, a Framework according to the preferredembodiments may be based on a web server 3 running on a platform thatprovides basic command line and standard input/output streamfunctionality. An agent 13 may provide two interfaces, a combinedHypertext Transfer Protocol (HTTP) and Common Gateway Interface (CCL),HTTP+CGI, and a Portable Operating System Interface (POSIX) commandline+standard input/output/error. In addition to these interfaces, theagent may provide further interfaces based on Java method invocationand/or Common Object Request Broker Architecture (CORBA) methodinvocation. An agent (or other user, client, or process) is free tochoose among the available interfaces with which to communicateincluding communication with another such agent 13. In addition, aframework according to the preferred embodiments allows non-agentsystems, processes, tools, or services that are utilized by an agent 13to be accessed via proprietary means if necessary or useful for anyoperations or processes outside of the scope of the architecture. Thus,tools and services intended for the architecture can co-exist freelywith other tools and services utilizing the same resources.

[0029] Specifically, the protocols on which a framework according to thepreferred embodiments may be based include HTTP which is anapplication-level protocol for distributed, collaborative, hypermediainformation systems. As a generic, stateless, protocol HTTP can be usedfor many tasks beyond hypertext. Thus, it may also be used with nameservers and distributed object management systems, through extension ofits request methods, error codes and headers. A particularly usefulfeature of HTTP is the typing and negotiation of data representation,allowing systems to be built independently of the data beingtransferred.

[0030] CGI is a standard for interfacing external applications withinformation servers, such as Web servers. CGI may serve as the primarycommunication mechanism between networked clients and software agentswithin a framework according to the preferred embodiments.

[0031] POSIX is a set of standard operating system interfaces based onthe UNiX operating system. The POSIX interfaces were developed under theauspices of the 1EEE (Institute of Electrical and ElectronicsEngineers). A framework according to the preferred embodiments adopt thePOSIX models for command line arguments, standard input streams,standard output streams, and standard error streams.

[0032] CORBA specifies a system that provides interoperability betweenobjects in a heterogeneous, distributed environment that is transparentto a database programmer. Its design is based on the Object ManagementGroup (OMG) Object Model. Framework agents may utilize CORBA as one ofseveral means of agent intercommunication.

[0033] Java™ is both a programming language and a platform. Java is ahigh-level programming language intended to be architecture-neutral,object-oriented, portable, distributed, high-performance, interpreted,multithreaded, robust, dynamic, and secure. The Java platform is a“virtual machine” which is able to run any Java program on any machinefor which an implementation of the Java virtual machine (JVM) exists.Most operating systems commonly in use today are able to support animplementation of the JVM. The core software components and agentsprovided by a framework according to the preferred embodiments may beimplemented in Java.

[0034] Metadata is held within a framework according to the preferredembodiments using a naming scheme which is compatible across a broadrange of encoding schemes including, but not limited to the followingprogramming, scripting and command languages: C, C++, Objective C, Java,Visual BASIC, Ada, Smalltalk, LISP, Emacs Lisp, Scheme, Prolog,JavaScript/ECMASCriPt, Pen, Python, TCL, Bourne Shell, C Shell, Z Shell,Bash, Korn Shell, POSIX, Win32, REXX, and SQL.

[0035] The naming scheme according to the preferred embodiments may alsobe compatible with, but not limited to, the following mark-up andtypesetting Languages: SGML, XML, HTML, XI-ITML, DSSSL, CSS, PostScript,and PDF. Equally, the naming scheme may be also compatible with but notlimited to the following file systems: FAT (MS-DOS), VFAT (Windows95/98), NTFS (Windows NT/2000), HFS (Macintosh), HPFS (OS/2), HP/UX, UFS(Solaris), ext2 (Linux), ODS-2 (VMS), NFS, ISO 9660 (CDROM), UDF (CDRIW,DVD).

[0036] In order to provide such compatibility, the naming scheme mayutilize an explicit, bound, and typically ordinal set of values referredto hereinafter as a token. The token may comprise any sequence ofcharacters beginning with a lowercase alphabetic character followed byzero or more lowercase alphanumeric characters with optional singleintervening underscore characters. More specifically, any stringmatching the following POSIX regular expression:

[0037] /[a-z](_?[a-z0-9])*/

[0038] Some examples may include: Abcd, ab_cd, a123, x2345, andhere_is_a_very_long_token_value.

[0039] By defining MARS metadata properties in a token format, an agent13 or other tool is able to operate more efficiently as a result of itsprocesses being based on controlled sets of explicitly defined valuesrather than those based on arbitrary values.

[0040] A token provides the structure through which a frameworkaccording to the preferred embodiments are able to define metadata inthe form of a property. This property is representative of a quality orattribute assigned or related to an identifiable body of information.The property thus includes an ordered collection of one or more valuessharing a common name. The name of the property represents the name ofthe collection and the value(s) represent the realization of thatproperty. In accordance with the token structure adopted in theframework, constraints are placed on the values that may serve as therealization of a given property. A property set is thus any set of MARS25 properties.

[0041] Further details of the property types allowed under MARS 25 areto be found in the MARS section following. Certain property values arealso defined under MARS 25 and may also be found in the MARS sectionfollowing. These include the property value of count that may be asingle meaning that at most there may be one value for a given propertyor multiple meaning that there may be one or more values for a givenproperty. Another property value is range which for any given propertymay be bounded or unbounded. In addition, the property value of rankingprovides, for any given property, the set of allowed values for thatproperty may be ordered by an implicit or explicit ordinal ranking,either presumed by all applications operating on or referencing thosevalues or defined. Some property value types are ranked implicitly dueto their type and subsequently the value ranges of all properties ofsuch types are automatically ranked. Examples of such property typesinclude Integer, Count, Date, Time and the like. Most properties withranked value ranges are token types having a controlled set of allowedvalues which have a significant sequential ordering such as status,release, milestone and the like.

[0042] Ranking, if it is applied, may be either strict or partial. Withstrict ranking, no two values for a given property may share the sameranking. With partial ranking, multiple values may share the same rank,or may be unspecified for rank, having the implicit default rank ofzero.

[0043] Ranked properties may only have single values. This is a specialconstraint which follows logically from the fact that ranking defines arelationship between objects having ranked values, and comparisonsbetween ranked values becomes potentially ambiguous if multiple valuesare allowed. For example, if the values x, y, and z for property P havethe ranking 1, 2, and 3 respectively, and object ‘foo’ has the propertyP(y) and object ‘bar’ has the property P(x,z), then a boolean query suchas “foo.P<bar.P?” cannot be resolved to a single boolean result, as y isboth less than z and greater than x. Thus the query is both true andfalse, depending on which value is chosen for bar.P (i.e.foo.P(y)<bar.P(x)=False, while foo.P(y)<bar.P(z)=True).

[0044] Ranking for all property types other than token are definedimplicitly by the data type, usually conforming to fundamentalmathematical or industry standard conventions. Ranking for tokenproperty values are specified using Ranking. In either case and as hasalready been stated, ranking may be strict in the sense that the set ofallowed values for the given property corresponds to a strict ordering,and each value is associated with a unique ranking within that ordering.Alternatively, ranking may be partial in the sense that the set ofallowed values for the given property corresponds to a partial ordering,and each value is associated with a ranking within that ordering,defaulting to zero if not otherwise specified. Finally, ranking may notbe applied such that the set of allowed values for the given propertycorresponds to a free ordering, and any ranking specified for any valueis disregarded.

[0045]FIG. 3 shows a diagram of an identity architecture defined by aframework according to an exemplary preferred embodiment. The Identityarchitecture 33 may have a set of nested pre-determined definitions ofspecific scope each utilizing tokens to hold information. At the lowestlevel of scope, a Storage Item 35 corresponds to what would typically bestored in a single file or database record, and is the physicalrepresentation of the data that the framework is capable ofmanipulating. Thus, Items 35 are the discrete computational objectswhich are passed from process to process, and which form the buildingblocks from which the information space and the environment used tomanage, navigate, and manipulate it are formed. Hence, an Item 35 mayembody content, content fragments, metadata, revision deltas, or otherinformation.

[0046] At the next highest level of scope, a Media Component 37 definesa particular realization of a defined token value. Thus, the Component37 defines at an abstract level properties and characteristics of one ofthe following non-exhaustive content types, namely data, metadata, tableof contents, index or glossary. A data content type might include alanguage, area of coverage, release or method of encoding. A component37 is linked to one or more storage item 35 that relates to the contentat a physical level.

[0047] Immediately, above the level of scope of the Media Component 37is a Media Instance 39. The media instance 39 is made up of a number ofmedia components 37 each of which relate to a particular property of anidentifiable body of information. Thus, a particular Media Instance 39may comprise a set of properties 37 namely a specific release, language,area of coverage and encoding method.

[0048] Finally, the highest level of scope is a Media Object 41 whichrepresents an body of information corresponding to a commonorganizational concept such as a document, book, manual, chapter,section, sidebar, table, image, chart, diagram, graph, photograph, videosegment, audio stream or the like.

[0049] However, the body of information is abstract to the extent thatno specification is made of any particular language, coverage, encodingor indeed release. Thus, depending on the presence, or otherwise ofinformation at the lower levels of scope, dictated ultimately by theexistence or otherwise of a relevant Storage Item 35, it may be possibleto realize some, if not all, particular media instances 39 correspondingto that media object 41.

[0050] In order to allow for referencing of specific content, namely afragment within a given item, component, instance, or object, MARS 25adopts the Worldwide Web Consortium (W3C) proposal for the XPointerstandard for encoding such content specific references in SGML, HTML, orXML content. A fragment will be understood by those skilled in the artto be an identifiable linear sub-sequence of the data content of acomponent 37, either static or reproducible, which is normally providedwhere the full content is either too large in volume for a particularapplication or not specifically relevant. Those skilled in the art willalso be aware of the W3C Xpointer proposal, however further details maybe found from the W3C website which is presently located at www.w3c.org.XPointer is based on the XML Path Language (XPath). Through theselection of various properties, such as element types, attributevalues, character content, and relative position, XPointer supportsaddressing within internal structures of XML documents and allows fortraversals of a document tree. Thus, in place of structural referencesto data, the framework may provide that explicit element ID values areused for all pointer references thereby avoiding specific references tostructural paths and data content. As a result, a framework according tothe preferred embodiments ensures the maximal validity of pointer valuesto all realizations of a given media object, irrespective of language,coverage, encoding, or partitioning. In addition to the Xpointerstandard proposal, other alternative/additional internal pointermechanisms for other encodings may be utilized.

[0051] In addition to the above-described architecture, a frameworkaccording to the preferred embodiments provides rules that relate to theinheritance and versioning of the scoped definitions. Thus, theframework provides that metadata defined at higher scopes is inheritedby lower scopes by ensuring that two rules are applied. Firstly, allmetadata properties defined in higher scopes are fully visible,applicable, and meaningful in all lower scopes, without exception.Secondly, any property defined in a lower scope completely supplants anydefinition of the same property that might exist in a higher scope.Consequently, all metadata properties defined for a media object 41 maybe inherited by all instances 39 of that object; and all metadataproperties defined for a media instance 39 or media object 41 may beinherited by all of its components 37.

[0052] In relation to versioning, MARS 25 defines a versioning modelusing two levels of distinction. A first level is defined as a release,namely a published version of a media instance that is maintained and/ordistributed in parallel to other releases. By way of example, a releasecould be viewed as a branch in a prior art tree based versioning model.A second level is defined as a revision corresponding to a milestone inthe editorial lifecycle of a given release; or by way of example, a nodeon a branch of the prior art tree based model. MARS 25 defines andmaintains versioning for ‘data’ storage item 35, only.

[0053] In addition to the Identity architecture described above, MARS 25provides a management architecture that permits control of processessuch as retrieval, storage, and version management. Details of theproperties defined to provide such functionality might be found in theMARS section following. MARS 25 also provides affiliation propertiesthat define an organizational environment or scope where data iscorrected and maintained. Examples of such properties can also be foundin the MARS section following.

[0054] MARS 25 further provides content properties that allow definitionof data characteristics independent of the production, application orrealization of that Data. Again, examples of such properties can befound in the MARS section following. MARS 25 also provides encodingproperties defining special qualities relating to the format, structureor general serialization of data streams. These properties are, ofcourse, of significance to tools and processes operating on that data.Yet again, examples of such properties can be found in the MARS sectionfollowing. MARS 25 also provides association properties that definerelationships relating to the origin, scope or focus of the content inrelation to other data. Examples of such properties may be found in theMARS section following. Finally, MARS 25 provides role properties thatspecify one or more actors who have a relationship with the data. Anactor may be a real user or a software application such as an agent.Examples of such properties may be found in the MARS section following.

[0055] As has been previously mentioned, a Generalized Media Archive(GMA) 27, based on Media Attribution and Reference Semantics (MARS) 25metadata provides a uniform, consistent, and implementation independentmodel for the storage, retrieval, versioning, and access control ofelectronic media. Further details of the GMA may be found in the GMAsection following. The GMA 27 and serves as the common archival modelfor all managed media objects controlled, accessed, transferred orotherwise manipulated by agencies operating with a framework accordingto the preferred embodiments. Hence, the GMA 27 may serve as afunctional interface to wide range of archive implementations whilstremaining independent of operating system, file system, repositoryorganization, versioning, mechanisms, or other implementation details.This abstraction facilitates the creation of tools, processes, andmethodologies based on this generic model and interface which areinsulated from the internals of the GMA 27 compliant repositories withwhich they interact.

[0056] The GMA 27 defines specific behavior for basic storage andretrieval, access control based on user identity, versioning, automatedgeneration of variant instances, and event processing. The identity ofindividual storage items 35 is based on MARS metadata semantics and allinteraction between a client and a GMA implementation must be expressedas MARS 25 metadata property sets.

[0057] The GMA manages media objects 41 via media components 37 and ismade up of storage items 35. The GMA manages the operations ofversioning, storage, retrieval, access control, generation and events aswill be further described below. Examples of pseudo code correspondingto the above and other managed operations carried out by the GMA may befound in the GMA section following.

[0058] The GMA 27 operates on the basis of MARS 25 metadata and as aresult of its operation the GMA 27 acts on that same metadata. Themetadata operated on by the GMA 27 may be restricted to managementmetadata rather than content metadata. The former being metadataconcerned with the history of the physical data, such as retrieval andmodification history, creation history, modification and revisionstatus, whereas the latter is concerned with the qualities andcharacteristics of the information content as a whole, independent ofits management. Content metadata is stored as a separate ‘meta’component 37, not a ‘meta’ item 35, such that the actual specificationof the content metadata is managed by the GMA 27 just as any other mediacomponent 37. The metadata that is of primary concern to a GMA 27, andwhich a GMA accesses, updates, and stores persistently, is the metadataassociated with each component 37.

[0059] A GMA 27 manages media components 37, and the management metadatafor each media component 37 is stored persistently in the ‘meta’ storageitem of the media component 37. A special case exists with regards tomanagement metadata which might be defined at the media instance 39 ormedia object 41 scope, where that metadata is inherited by allsub-components 37 of the higher scope(s) in accordance with theinheritance rules set out above.

[0060] In order to provide the necessary functionality, the GMA 27requires that the certain metadata properties are defined in an inputquery and/or in respect of any target data depending on the action beingperformed and which functional units are implemented. These propertiesare set out in the GMA section, Section 4.1.2-4, following. Inaccordance with inheritance rules defined in MARS 25, retrieval ofmetadata for a given media component scope includes all inheritedmetadata from media object and media instance scopes. In addition, theGMA 27 will assume the default values as defined by the MARS 25specification for all properties which it requires but that are notspecified explicitly. It is an error for a required property to haveneither a default MARS 25 value nor an explicitly specified value. Inaddition to relying on existing metadata definitions, the GMA 27 isresponsible for defining, updating, and maintaining the managementmetadata relevant for the ‘data’ item 35 of each media component 37,which is stored persistently as the ‘meta’ item 35 of the component 37.

[0061] The GMA 27 stores ‘meta’ item 35, containing management metadata,in any internal format; however the GMA must accept and return ‘meta’storage items as XML (extensible Mark-up Language) instances. However,content metadata constituting the data content of a ‘meta’ component 37and stored as the ‘data’ item 35 of the ‘meta’ component 37, must alwaysbe a valid XML instance.

[0062] These two constraints ensure that an agent interacting with theGMA 27 is able to retrieve from or store to the GMA 27 both content andmanagement metadata as needed. The GMA 27 is also able, as a consequenceof these constraints to resolve inherited management metadata from metacomponents at higher scopes in a generic fashion.

[0063] In order to store and retrieve items, the GMA 27 associateselectronic media data streams to MARS 25 storage item identities andmakes persistent, retrievable copies of those data streams indexed bytheir MARS 25 identity. The GMA 27 also manages the correspondingcreation and modification of time stamps in relation to those items. TheGMA 27 organizes both the repository 21 of storage items 35 as well asthe mapping mechanisms relating MARS identity metadata to locationswithin that repository 21. The GMA 27 may be implemented in anyparticular technology including, but not limited to common relational orobject oriented database technology, direct file system storage, or anynumber of custom and/or proprietary technologies.

[0064] In addition to the core storage and retrieval actions provided bythe GMA 27, the GMA 27 is capable of providing the functionalitynecessary to permit operations by agents in relation to versioning,access control, generation, and/or events. The GMA 27 will exhibit apre-defined behavior, to the extent that such functionality is providedby it.

[0065] Thus, if the GMA 27 implements access control, then accesscontrol of media 15 components 37 is based on several controllingcriteria as defined for the environment in which the GMA resides and asstored in the metadata of individual components managed by the GMA.Access control is defined for entire components and not for individualitems within a component. Access control may also be defined for mediaobjects 41 and media instances 39, in which case subordinate mediacomponents 37 inherit the access configuration from the higher scope(s)in the case that it is not defined specifically for the component. Thefour controlling criteria for media access are User identity, Groupmembership(s) of user, Read permission for user or group and Writepermission for user or group.

[0066] Accordingly, every user must have a unique identifier within theenvironment in which the GMA operates, and the permissions must bedefined according to the set of all users and groups within thatenvironment.

[0067] A user may be a human, but also can be a software application,process, or system typically referred to as an agent 13. This isespecially important for both licensing as well as tracking operationsperformed on data by automated software agents 13 operating within theGMA 27 environment. Furthermore, any user may belong to one or moregroups, and permissions may be defined for an entire group, and thus forevery member of that group. Consequently, the maintenance overhead inenvironments with large numbers of users and/or high user turnover manyusers coming and going is reduced. In a manner similar to theinheritance rules applied by MARS 25, permissions defined for explicituser override permissions defined for a group of which the user is amember. For example, if a group is allowed write permission to acomponent 37, but a particular user is explicitly denied writepermission for that component 37, then the user may not modify thecomponent 37.

[0068] The GMA 27 may also provide read permission such that a user orgroup may retrieve a copy of the data. Where a lock marker is placed inrelation to data, it does not prohibit retrieval of data, merelymodification of that data. If access control is not implemented, and/orunless otherwise specified globally for the GMA 27 environment or for aparticular archive, or explicitly defined in the metadata for anyrelevant scope, a GMA 27 must assume that all users have read permissionto all content.

[0069] Similarly, the GMA 27 may also provide Write permission thatmeans that the user or group may modify the data by storing a newversion thereof. The GMA 27 provides that write permission equates toread permission such that every user or group which has write permissionto particular content also has read permission. This overrides thesituation where the user or group is otherwise explicitly denied readpermission.

[0070] As in the case of read permission, the presence of a lock markerprohibits modification by any user other than the owner of the lock,including the owner of the component 32 if the lock owner and componentowner are different. Optionally, the GMA 27 provides a means to defeatlocking as a reserved action unavailable to general users. Shouldlocking be defeated in this manner then the GMA 27 logs the event andnotifies the lock owner accordingly.

[0071] Where access control is not implemented, then the GMA 27 appliesthe rule that all users have write permission to all content. If accesscontrol is implemented, and unless otherwise specified globally for theGMA 27 environment or for a particular archive or explicitly defined inthe metadata for any relevant scope, the GMA 27 must assume that nousers have write permission to any content. Regardless of any othermetadata defined access specifications not including settings definedglobally for the archive, the owner of a component 37 always has writeaccess to that component 32.

[0072] In addition to blanket access control, the GMA 27 may, if accesscontrol is enabled provide a set of access levels which serve asconvenience terms when defining, specifying, or discussing the“functional mode” of a particular GMA 27 with regard to read and writeaccess control.

[0073] Access levels can be used as configuration values by GMA 27implementations to specify global access behavior for a given GMA 27where the implementation is capable of providing multiple access levels.At each level the read and write capability may be predefined subject tothe overriding rule that a read right may never fall below thecorresponding write right.

[0074] The GMA 27 may implement versioning. Through the implementationof versioning, the GMA 27 facilitates the identification, preservation,and retrieval of particular revisions in the editorial lifecycle of aparticular discrete body of 30 data.

[0075] The versioning model used by the GMA 27 and further descriptionin the GMA section, section 4.5 following, in particular defines arelease as a series of separately managed and independently accessiblesequences of revisions. Revisions are defined as ‘snapshots’ along aparticular release. Where a release is derived from another release thenthe GMA 27 updates a MARS 25 source property to identify from whatrelease and revision the new release stems. Within the above rules, theGMA 27 is responsible for linear sequence of revisions within aparticular release. The GMA 27 is responsive to external agent 13activities that are themselves responsible for the automated orsemi-automated creation or specification of new instances 39 relating todistinct releases. The GMA is also responsive to agent 13 activitiesrelating to the retrieval of revisions not unique to a particularrelease. Typically, a human editor manually performs the creation of newreleases, including the specification of ‘source’ and any other relevantmetadata values. Other tools, external to the GMA 27 may also exist toaid users in performing such operations.

[0076] A GMA 27 performs versioning for the ‘data’ item 35 of a mediacomponent 37 only and that sequence of revisions constitutes theeditorial history of the data content of the media component 37. The GMA27 is also responsible for general management and updating of creation,modification and other time stamp metadata. Storage or update of itemsother than the ‘data’ item 35 neither effect the status of managementmetadata stored in the ‘meta’ item 35 of the component 37 unless theitem 35 in question is in fact the ‘meta’ 35 item of the component 37,nor are reflected in the revision history of the component 37. If arevision history or particular metadata must be maintained for any MARS25 identifiable body of content, then that content must be identifiedand managed as a separate media component 37, possibly belonging to aseparate media instance 39.

[0077] Revisions are identified by positive integer values utilizingMARS 25 property type Count values. The scope of each media component 37is unique and revision values have significance only within the scope ofeach particular media component 32. Revision sequences should begin withthe value ‘1’ and proceed linearly and sequentially. The GMA 27implementation is free to internally organize and store past revisionsin any fashion it chooses.

[0078] The GMA 27 may implement one or both of the following describedmethods for storing past revisions of the content of a media component.However, regardless of its internal organization and operations, the GMA27 must return any requested revision as a complete copy.

[0079] One method that the GMA 27 may employ to store past revisions isto generate snapshots. A snapshot is a complete copy of a given revisionat a particular point in time. As such snapshotting is straightforwardto implement, and possibly time consuming regeneration operations arenot needed to retrieve past revisions. The latter can be very importantin an environment where there is heavy usage and retrieval times are aconcern.

[0080] Alternatively or in conjunction with snapshots, the GMA 27 maystore past revisions through a reverse delta methodology. A delta is setof one or more editorial operations that can be applied to a body ofdata to consistently derive another body of data. A reverse delta is adelta that allows one to derive a previous revision from a formerrevision. Rather than store the complete and total content of eachrevision, the GMA 27 stores the modifications necessary to derive eachpast revision from the immediately succeeding later revision. To obtaina specific past revision, the GMA 27 begins at the current revision, andthen applies the reverse deltas in sequence for each previous revisionuntil the desired revision is reached.

[0081] In a variant of the above, the GMA 27 utilizes a forward deltamethodology where each delta defines the operations needed to derive themore recent revision from the preceding revision.

[0082] The GMA 27 may also implement generation through the dynamicallycreating data streams from one or more existing storage items 35. By wayof example, this includes conversions from one encoding or format toanother, extraction of portions of a component's content,auto-generation of indices, tables of contents, bibliographies,glossaries, and the like as new components 37 of a media instance 39,generation of usage, history, and/or dependency reports based onmetadata values, generation of metadata profiles for use by one or moreregistry services.

[0083] The GMA 27 also provides dynamic partitioning whereby a fragmentof the data content is returned in place of the entire ‘data’ item,optionally including automatically generated hypertext links topreceding and succeeding content, and/or information about thestructural/contextual qualities of the omitted content, depending on themedia encoding. The GMA 27 may implement dynamic partitioningirrespective of whether static fragments exist. Dynamic partitioning iscontrolled by one or possibly two metadata properties, in addition tothose defining the identity of the source data item. The requiredproperty is size that determines the maximum number of bytes which thefragment can contain starting at the beginning of the data item. Whereasthe second and optional property is pointer that defines the pointwithin the data item from which the fragment is extracted. Thus, the GMA27 extracts the requested fragment, starting either at the beginning ofthe data item, where no pointer is defined or at the point specified bythe pointer value that may be at the start of the data item if thepointer value is zero. The GMA 27 collects the largest coherent andmeaningful sequence of content up to but not exceeding the specifiednumber of content bytes. What constitutes a coherent and meaningfulsequence will depend on the media encoding of the data and possiblyinterpretations inherent in the GMA 27 implementation itself.

[0084] A GMA 27 may implement event handling. Accordingly, for eachstorage item, media component 37, media instance 39, or media object 41,a set of one or more MARS 25 property sets defining some operation(s)can be associated with each MARS 25 action, such that when that actionis successfully performed on that item 35, component 37, instance 41, orobject, the associated operations are executed. Automated operations arethus defined for the source data and not for any target data that mightbe automatically generated as a result of an event triggered operation.Each operation property set must specify the necessary metadataproperties to be executed correctly, such as the action(s) to performand possibly including the CGI URL of the agency that is to perform theaction. The GMA 27 determines how a given operation is to be performed,and by which software component or agent 13 if otherwise unspecified inthe property set(s).

[0085] In the case of a remove action, which will result in the removalof any events defined at the same scope as the removed data, the GMA 27will execute any operations associated with the remove action defined atthat scope, after successful removal of the data, even though theoperations themselves are part of the data removed and will never beexecuted again in that context.

[0086] The most common type of operation for events is a compound‘generate store’ action which generates a new target item from an inputitem and stores it persistently in the GMA 27, taking into account allversioning and access controls in force. By this operation, it ispossible to automatically update components such as the toc (Table ofContents) or index when a data component 37 is modified, or generatestatic fragments of an updated data component 37.

[0087] The GMA 27 may associate automated operations globally for anygiven action provided the automated operations are defined in terms ofMARS 25 property sets. Automated operation may also be applied withinthe scope of the data being acted upon. The GMA 25 may also associateautomated operations with triggers other than MARS 25 actions, such asreoccurring times or days of the week, for the purpose of removingexpired data such as via a ‘locate remove’ compound action.

[0088] The GMA 27 must also apply the following rules relating to theserialization and encoding of certain storage items. Thus, the GMA 27provides that every ‘meta’ storage item that is presented to a GMA 27for storage or returned by a GMA 27 on retrieval must be a valid XMLinstance. Metadata property values “contained” within ‘meta’ storageitems 35 need not be stored or managed internally in the GMA 27 usingXML, but every GMA 27 implementation must accept and return ‘meta’ itemsas valid XML instances. In the case of ‘data’ Storage Items 35 within‘meta’ Media Components 37, the serialization of ‘meta’ storage items 35is also used to encode all ‘data’ storage items 35 for all ‘meta’components 37. Although the GMA 27 persistently stores all ‘data’storage items 35 literally, it may also choose to parse and extract acopy of the metadata property values defined within meta component dataitems to more efficiently determine inherited metadata properties atspecific scopes within the archive 27.

[0089] Every ‘idmap’ storage item which is presented to a GMA 27 forstorage or returned by a GMA 27 on retrieval should be encoded as aComma Separated Value (CSV) data stream defining a table with twocolumns where each row is a single mapping and where the firstcolumn/field contains the value of the ‘pointer’ property defining thesymbolic reference and the second column/field contains the value of the‘fragment’ property specifying the data content fragment containing thetarget of the reference, for example:

[0090] #EID284828,228

[0091] #E1D192,12

[0092] #EID9928,3281

[0093] #E1D727,340

[0094] The mapping information “contained” within ‘idmap’ storage itemsneed not be stored or managed internally in the GMA 27 in CSV format,but every GMA 27 implementation accepts and returns ‘idmap’ items as CSVformatted data streams.

[0095] Finally, the GMA 27 returns the complete and valid contents of agiven ‘data’ storage item for a specified revision (if it exists),regardless how previous revisions are managed internally. Reverse deltasor other change summary information which must be applied in somefashion to regenerate or rebuild the desired revision must not bereturned by a GMA 27, even if that is all that is stored for eachrevision data item internally. Only the complete data item is to bereturned.

[0096] In order to implement the GMA 27 across a physical system 1, theconcept of a Portable Media Archive (PMA) 29 has already beenintroduced. The PMA provides a physical organizational model of a filesystem based data repository 21 conforming to and suitable forimplementations of the Generalized Media Archive (GMA) 27 abstractarchival model. The PMA section following provides further details ofthe PMA 29.

[0097] The PMA 29 defines an explicit yet highly portable file systemorganization for the storage and retrieval of information based MARS 35metadata. Accordingly, the PMA 29 uses the MARS Identity and ItemQualifier metadata property values themselves as directory and/or filenames. Where the GMA 27 utilizes a physical organization, model otherthan the PMA 29. The PMA 29 may nevertheless be employed by such animplementation as a data interchange format between disparate GMA 27implementations and/or as a format for storing portable backups of agiven archive 21.

[0098] The PMA 29 is structured physically as a hierarchical directorytree that follows the MARS object/instance/component/item scoping model.Each media object 41 comprises a branch in the directory tree, eachmedia instance 39 a sub-branch within the object branch 41, each mediacomponent 32 a sub-branch within the instance 39, and so forth. OnlyMARS Identity and Item Qualifier property values are used to referencethe media objects 41 and instances 39. All other metadata properties aswell as Identity and Qualifier properties are defined and storedpersistently in ‘meta’ storage items 35; conforming to the serializationand interchange encodings used by the GMA 27 and referred to above.Because Identity and Item Qualifier properties must be either valid MARStokens or integer values, it will be appreciated by one skilled in theart that any such property value is likely to be an acceptable directoryor file name in all major file systems in use today.

[0099] More particularly, the media object scope is encoded as adirectory path consisting of a sequence of nested directories, one foreach character in the media object ‘identifier’ property value. Forexample:

[0100] Identifier=“dn9982827172” gives d/n/9/9/8/2/8/2/7/1/2/

[0101] Identifier values are broken up in this fashion in order tosupport very large numbers of media objects, perhaps up to millions oreven billions of such objects, residing in a given archive 21. Byemploying only one character per directory, the PMA 29 ensures thatthere will be at most 37 child sub-directories within any givendirectory level that is one possible sub-directory for each character inthe set [a-z0-9_] allowed in MARS token values. Accordingly, thesub-directory structure satisfies the maximum directory childrenconstraints of most modern file systems. The media object 41 scope maycontain media instance 39 sub-scopes or media component 37 sub-scopes;the latter defining information, metadata or otherwise, which is sharedby or relevant to all instances of the media object 41. The mediainstance 39 scope is encoded as a nested directory sub-path within themedia object 41 scope and consisting of one directory for each of theproperty values for ‘release’, ‘language’, ‘coverage’, and ‘encoding’,in that order. For example:

[0102] release=“1” language=“en” coverage=“global” encoding=“xhtml”gives 1/en/global/xhtm/1/

[0103] The media component 37 scope is encoded as a sub-directory withineither the media object 41 scope or media instance 39 scope and namedthe same as the component 37 property value. For example:

[0104] component=“meta” gives meta/

[0105] The revision scope, grouping the storage items for a particularrevision milestone, is encoded as a directory sub-path within the mediacomponent 37 scope beginning with the literal directory ‘revision’followed by a sequence of nested directories corresponding to the digitsin the non-zero padded revision property value. For example:

[0106] revision=“27” gives revision/2/7/

[0107] The ‘data’ item 35 for a given revision must be a complete andwhole snapshot of the revision, not a partial copy or set of deltas tobe applied to some other revision or item. It must be fully independentof any other storage item insofar as its completeness is concerned.

[0108] The fragment scope, grouping the storage items for a particularstatic fragment of the data component content, is encoded as a directorysub-path within the media component 32 scope or revision scope andbeginning with the literal directory ‘fragment’ followed by a sequenceof nested directories corresponding to the digits in the non-zero paddedfragment property value. For example:

[0109] fragment=“5041” gives fragment/5/0/4/1/

[0110] The event scope, grouping action triggered operations for aparticular component 37, instance 39, or object 41, is encoded as adirectory sub-path within the media component 32 scope, media instance39 scope, or media object 41 scope and beginning with the literaldirectory ‘events’ and containing one or more files named the same asthe MARS action property values, each file containing a valid MARS XMLinstance defining the sequence of operations as ordered property sets.For example:

[0111] events/store

[0112] events/retrieve

[0113] events/unlock

[0114] The storage item 35 is encoded as a filename within the mediacomponent, revision, or fragment scope and named the same as the itemproperty value. For example:

[0115] item=“data” gives data

[0116] The PMA 29 does not have any minimum requirements on thecapacities of host file systems, nor absolute limits on the volume ordepth of conforming archives. However, it will be appreciated by thoseskilled in the art that an understanding of the variables that mayaffect portability from one file system to another is important if dataintegrity is to be maintained. Nevertheless, the PMA 29 does define thefollowing recommended minimal constraints on a host file system, whichshould be met, regardless of the total capacity or other capabilities ofthe file system in question:

[0117] File and Directory Name Length: 30

[0118] Directory Depth: 64

[0119] Number of Directory Children: 100

[0120] The above specified constraints are compatible with the followingcommonly used file systems, which are therefore suitable for hosting aPMA 29 which also does not exceed real constraints of the given hostfile system: VFAT (Windows 95/98), NTFS (Windows NT/2000), HFS(Macintosh), HPFS (OS/2), HP/UX, UFS (Solaris), ext2 (Linux), ISO 9660Levels 2 and 3 (CDROM), and UDF (CDRJW, DVD). These are but arepresentative sample of file systems that are suitable for hosting aPMA 29. The PMA section following provides an example of file systemorganization for a PMA 29.

[0121]FIG. 4 shows a diagram of a Registry Service architectureaccording to an exemplary preferred embodiment. In order to facilitateaccess by agents to the data 15 held within the framework, a RegistryService architecture (REGS) 31 is defined which provides for dynamicquery resolution agencies based on MARS 25, thereby providing a unifiedinterface model for a broad range of search and retrieval tools. TheREGS section following provides further details of REGS.

[0122] REGS 31 provides a generic means to interact with any number ofspecialized search and retrieval tools using a common set of protocolsand interfaces based on a Framework according to the preferredembodiments utilizing MARS metadata semantics and either a POSIX or CGIcompliant interface. As with other Framework components, this allows formuch greater flexibility in the implementation and evolution ofparticular solutions while minimizing the interdependencies between thetools and their users, be they human or software agents 13.

[0123] Being based on MARS 25 metadata allows for a high degree ofautomation and tight synchronization with the archival and managementsystems used in the same environment, with each registry servicederiving its own registry database 43 directly from the metadata storedin and maintained by the various archives 21 themselves; while at thesame time, each registry service 43 is insulated from the implementationdetails of and changes in the archives from which it receives 44 itsinformation. As shown in FIG. 4, each variant of REGS 31 may share acommon architecture and fundamental behavior, differing only in theactual metadata properties required for its particular application.

[0124] A key feature of the registry database 43 architecture is theprovision in every case, of a profile or property set which, in additionto any non-identity related properties, explicitly defines the identityof a specific media object, media instance, media component, or storageitem (possibly a qualified data item). Default values for unspecifiedidentity properties are not applied to a profile and any given profilemay not have scope gaps in the defined Identity properties (i.e., ‘item’defined but not ‘component’, etc.). Profiles should unambiguously andprecisely identify a media object, instance, component or item.

[0125] In addition to identity, the retrieval location of the archive 21or other repository where that information resides must be specifiedeither using the ‘location’ or ‘agency’ properties. If both arespecified, they must define the equivalent location. The additionalproperties included in any given profile are defined by the registryservice operating on or returning the profile, and may not necessarilycontain any additional properties other than those defining identity andlocation.

[0126] In order to access the content held within a framework accordingto the preferred embodiments, the agent 13 or other user creates asearch mask in the form of a query 46. The query 46 is a particularvariant of the above-described profile set that defines a set ofproperty values which are to be compared to the equivalent properties inone or more profiles. A query differs from a regular property set inthat it may contain values that may deviate from the MARS 25specification in that properties normally allowing only a single valuemay have multiple values defined in a query 46.

[0127] The normal interpretation of multiple query values is to apply‘OR’ logic such that the property matches if any of the query valuesmatch any of the target values; however, a given registry service ispermitted, depending on the application, to apply ‘AND’ logic requiringthat all query values match a target value, and optionally that everytarget value is matched by a query value. Accordingly, it must beclearly specified for a registry service if ‘AND’ logic is being appliedto multiple query value sets. Furthermore, query values for propertiesof MARS type String may contain valid POSIX regular expressions ratherthan literal strings; in which case the property matches if thespecified regular expression pattern matches the target value. Queryvalues may be prefixed by one of several comparison operators, with oneor more mandatory intervening space characters between the operator andthe query value. The order of comparison for binary operators is: queryvalue {operator} target value.

[0128] Not all comparison operators are necessarily meaningful for allproperty value types, nor are all operators required to be supported byany given registry service. It must be clearly specified for everyregistry service which, if any, comparison operators are supported ininput queries.

[0129] In the rare case that a literal string value begins with acomparison operator followed by one or more intervening spaces, theinitial operator character should be preceded by a backslash character‘\’. The registry service must then identify and remove the backslashcharacter before any comparisons. Examples of some comparison operatorsare given below:

[0130] Negation “!”

[0131] The property matches if the query value fails to match the targetvalue. E.g. “! approved”.

[0132] LessThan“<”

[0133] The property matches if the query value is less than the targetvalue. E.g. “<2.5”.

[0134] Greater Than“>”

[0135] The property matches if the query value is greater than thetarget value. E.g. “>draft”.

[0136] Less Than or Equal To “<=”

[0137] The property matches if the query value is less than or equal tothe target value. E.g. “<=2000-09-22”.

[0138] Greater Than or Equal To

[0139] The property matches if the query value is greater than or equalto the target value. E.g. “>=5000”.

[0140] Wildcard Value Operator

[0141] Any property in a query may have specified for it the specialvalue regardless of property type, which effectively matches any definedvalue in any target. The wildcard value does not however match aproperty which has no value defined for it. The wildcard value operatormay be preceded by the negation operator.

[0142] The special wildcard operator is particularly useful forspecifying the level of Identity scoping of the returned profiles for aregistry 43 that stores profiles for multiple levels of scope. It isalso used to match properties where all that is of interest is that theyhave some value defined but it does not matter what the value actuallyis. Alternatively, when combined with the negation operator, to matchproperties that have no value defined. The latter is useful forvalidation and quality assurance processes to isolate information thatis missing mandatory or critical metadata properties.

[0143] The wildcard value operator should be preceded by a backslashcharacter ‘\’ in the rare case that a literal string value equals thewildcard value operator. The registry service should then identify andremove the backslash character before any comparisons.

[0144] Each variant of REGS 31 has the following commonality ofarchitecture which is defined by the metadata properties it allows andrequires in each profile, the metadata properties it allows and requiresin a given search query and whether returned profiles are scored andordered according to relevance. These three criteria define theinterface by which the registry service interacts with all sourcearchives and all users.

[0145] A particular registry service will extract from a given archive27 or be provided by or on behalf of the archive the profiles for alltargets of interest which a user may search on, and containing allproperties defined for each target which are relevant to the particularregistry 43. There profiles are stored in the database 43. Depending onthe nature of the registry 43, this may include profiles for bothabstract media objects 41, media instances, and media components 37 aswell as physical storage items 35 or even qualified data items. Someproperty values for a profile may be dynamically generated specificallyfor the registry 43, such as the automated identification or extractionof keywords or index terms from the data content, or similar operations.

[0146] The profiles from several archives 21 may be combined by theregistry service into a single search space 43 for a given applicationor environment. The location and/or agency properties serve todifferentiate the source locations of the various archives 21 from whichthe individual profiles originate.

[0147] All registry services 43 define and search over profiles, andthose profiles define bodies of information at either an abstract orphysical scope; i.e. media objects 41, media instances 39, mediacomponents 37, or storage items 35. A given registry database mightcontain profiles for only a single level of scope or for several levelsof scope.

[0148] If a query 46 does not define any Identity properties, then theregistry service 20 via a query resolution engine 45 should return 48all matching profiles regardless of scope; however, if the query 46defines one or more Identity properties, then all profiles returned 48by the engine 45, should be of the same level of scope as the lowestscoped Identity property defined in the search query 46.

[0149] A specific level of scope can be specified in a query 46 by usingthe special wildcard value “*” for the scope of interest (e.g.“component=meta item=* . . .” to find all storage items within metacomponents which otherwise match the remainder of the query).

[0150] Each set of profiles returned for a given search may beoptionally scored and ordered by relevance by the engine 45, accordingto how closely they match the input query 46. The score must be returnedas a value to the MARS ‘relevance’ property. The criteria fordetermining relevance is up to each registry service 43, but it must bedefined as a percentage value where zero indicates no match whatsoever,100 indicates a “perfect” match (however that is defined by the registryservice), and a value between zero and 100 reflects the closeness of thematch proportionally. The scale of relevance from zero to 100 isexpected to be linear.

[0151] A registry service 43 can be directed by a user, or byimplementation, to apply two types of thresholds to constrain the totalnumber of profiles 48 returned by a given search 46. Both thresholds maybe applied together to the same search results. The MARS ‘size’ propertycan be specified in the search query (or applied implicitly by theregistry service) to define the maximum number of profiles to bereturned 48. In the case that profiles are scored and ordered byrelevance, the maximum number of profiles is to be taken from thehighest scoring profiles.

[0152] Similarly, the MARS ‘relevance’ property can be specified in thesearch query (or applied implicitly by the registry service) to definethe minimum score that must be equaled or exceeded by every profilereturned. In this regard specifying a minimum relevance of 100 requiresthat targets match perfectly, allowing the user or agent to selectbetween best match and absolute match.

[0153] All property sets (including profiles and queries) which arereceived/imported by and returned/exported from a registry service via adata stream should be encoded as XML instances conforming to the MARSDTD. This includes sets of profiles extracted from a given archive 44,search queries 46 received from client applications, and sets ofprofiles returned as the results of a search 48.

[0154] If multiple property sets are defined in a MARS XML instanceprovided as a search request 46, then each property set is processed asa separate query 46, and the results of each query 46 returned 48 in theorder specified, combined in a single XML instance. Any sorting orreduction by specified thresholds is done per each query only 46. Theresults 48 from the separate queries 46 are not combined in any fashionother than concatenated into the single returned XML instance.

[0155] Every registry service may organize and manage its internalregistry database using whatever means is optimal for that particularservice. It is not required to utilize or preserve any XML encoding ofthe profiles.

[0156] Most registry services 43 may include an additional CGI or otherweb based component 47 that provides a human-usable interface for aterminal 49 operable fan specifying queries 46 and accessing searchresults 48. This typically acts as a specialized proxy to the generalregistry service, converting the user specified metadata 50 to a validMARS query 46′ and then mapping the returned XML 48′ instance containingthe target profiles to HTML 52 for viewing and selection.

[0157] The interface or proxy component 47 preferably provides thefollowing functionality in delivering results to the user. The set ofreturned profiles should be presented as a sequence of links, preservingany ordering based on relevance scoring. Each profile link should beencoded as an (X)HTML ‘a’ element within a block element or othervisually distinct element (‘p’, ‘li’, ‘td’, etc.). The URL value of the‘href’ attribute of the ‘a’ element should be constructed from theprofile, based on the ‘location’ and/or ‘agency’ properties, which willresolve to the content of (or access interface for) the target. If the‘relevance’ property is defined in the profile, its value should beginthe content of the ‘a’ element, differentiated clearly from subsequentcontent by punctuation or structure such as parentheses, comma, colon,separate table column, etc. If the ‘title’ property is defined in theprofile, its value should complete the content of the ‘a’ element.Otherwise, a (possibly partial) MRN should be constructed from theprofile and complete the content of the ‘a’ element.

[0158] Examples:

[0159] <html>

[0160] <body>

[0161] <p>

[0162] <a href=“http://xyz.com/GMA?action=retrieve&identifier=. ..”>(98)Foo</a>

[0163] </p>

[0164] <p>

[0165] <a href=“http://xyz.com/GMA?action=retrieve&idefltifier. ..”>(87)Bar</a>

[0166] </p>

[0167] <p>

[0168] <a href=“http://xyz.com/GMA?action=retrieve&idefltifier=. ..”>(37)Bas</a>

[0169] <p>

[0170] </body>

[0171] </html>

[0172] <html>

[0173] <body>

[0174] <table>

[0175] <tr>

[0176] <th>Score</th>

[0177] <th>Target</th>

[0178] </tr>

[0179] <tr>

[0180] <td>98</td>

[0181] <td><a

[0182] href=“http://xyz.com/GMA? action=retrieve&identifier=. ..“>Foo</a></td>

[0183] </tr>

[0184] <tr>

[0185] <td>87</td>

[0186] <td><a

[0187] href=“http://xyz.com/GMA?action=retrieve&identifier=. ..“>Bar</a></td>

[0188] </tr>

[0189] <tr>

[0190] <td>37</td>

[0191] <td><a

[0192]href=“http://xyz.com/GMA?action=retrieve&identifier=...”>Bas</a></td>

[0193] </tr>

[0194] </table>

[0195] </body>

[0196] </html>

[0197] In order to assist still further in understanding this aspect ofthe preferred embodiments, a number of different examples of REGS 31suited to particular activities are set out below. In each case, a briefdescription is provided, as well as a specification of which metadataproperties are required or allowed for profiles and for queries. The‘action’ property may be required to be specified with the value‘locate’ in all registry service queries, therefore, it is not includedin the required query property specifications for each registry service.Likewise, the ‘relevance’ and ‘size’ properties are allowed for allinput queries to all registry services, therefore, they are also notexplicitly listed in the allowed query property specifications for eachregistry service.

[0198] Metadata Registry Service (META-REGS) provides for searching thecomplete metadata property sets (including inherited values) for allidentifiable bodies of information, concrete or abstract; includingmedia objects, media instances, media components, storage items andqualified data items. The results of a search are a set of profilesdefining zero or more targets at the lowest level of Identity scope forwhich there is a property defined in the search query. All targets inthe results may be of the same level of scope, even if the registrydatabase contains targets at all levels of scope.

[0199] The wildcard operator can be used to force a particular level ofscope in the results. For example, to define media instance scope, onlyone instance property need be defined with the wildcard operator value(e.g. “language=*”); to define media component scope, the componentproperty can be defined with the wildcard operator value (e.g.“component=*”); etc. The registry service may not require nor expectthat any particular instance property be used, nor that only oneproperty be used. It may not be permitted for two or more instanceproperties to have both wildcard and negated wildcard operator values ina given input query.

[0200] The default behavior is to provide the best matches for thespecified query; however, by defining in the input query a value of 100for the ‘relevance’ property, the search results may only include thosetargets which match the query perfectly. The former is most useful forgeneral browsing and exploration of the information space and the latterfor collection and extraction of specifically defined data.

[0201] Required profile properties for META-REGS include all Identityproperties required to uniquely identify the body of information inquestion, as well as either the ‘location’ or ‘agency’ property. Allowedprofile properties for META-REGS include any valid MARS property, inthis case being all defined MARS properties applicable to the body ofinformation in question. It is preferred that the ‘title’ property bedefined for all profiles, whenever possible.

[0202] There are no required query properties for META-REGS although atleast one property must be specified in the search query other than the‘action’ property. Allowed query properties for META-REGS include anyvalid MARS property.

[0203] Content Registry Service (CON-REGS) provides for searching thetextual content of all media instances within the included archives. Itcorresponds to a traditional “free-text index” such as those employed bymost web sites. The results of a search are a set of profiles definingzero or more data component data storage items or qualified data items.

[0204] Profiles may be defined only for data storage items and qualifieddata items (e.g. fragments) that belong to the data component of a mediainstance. Other components and other items belonging to the datacomponent should not be included in the search space of a CON-REGSregistry service. Note that in addition to actual fragment items,profiles for “virtual” fragments can be defined using a combination ofthe ‘pointer’ and (if needed) ‘size’ properties, where appropriate forthe media type (e.g. for specific sections of an XML document instance).

[0205] For each data item, the ‘keywords’ property may be defined as theunique, minimal set of index terms for the item, typically correspondingto the morphological base forms (linguistic forms independent ofinflection, derivation, or other lexical variation) excluding common“stop” words such as articles (“the”, “a”), conjunctions (“and”,“whereas”), or semantically weak words (“is”, “said”), etc. It isexpected that the same tools and processes for distilling arbitraryinput into minimal forms are applied both in the generation of theregistry database as well as for all relevant input query values.

[0206] The scope of the results, such as whole data items versusfragments, can be controlled using the ‘fragment’ property and thewildcard value operator “*” for the scope of interest. For example,“fragment=*” will force the search to only return profiles of matchingfragments and not of whole data items; whereas “fragment=!*” will onlyreturn profiles of matching whole data storage items. If otherwiseunspecified, all matching profiles for all items will be returned, whichmay result in redundant information being identified.

[0207] A human user interface will likely hide the definition of the‘fragment’ property behind a more mnemonic selection list or set ofcheckboxes, providing a single field of input for the query keywords. Ifa given value for the ‘keywords’ property contains multiple wordsseparated by white space, then all of the words must occur adjacent toone another in the order specified in the target content. Note that thisis not the same as multiple property values where each value contains asingle word. The set of all property values (string set) constitute anOR set, while the set of words in a single property value (string)constitute a sequence (phrase) in the target. White space sequences inthe query property value can be expected to match any white spacesequence in the target content, even if those two sequences are notidentical (i.e. a space can match a newline or tab, etc.).

[0208] A human user interface 47 provides a mechanism for definingmultiple ‘keywords’ property values as well as for differentiatingbetween values having a single word and values containing phrases orother white space delimited sequences of words. In the interest ofconsistency across registry services, when a single value input field isprovided for the ‘keywords’ or similar property, white space may be usedto separate multiple values by default and multi-word values arespecially delimited by quotes to indicate that they constitute the samevalue (e.g., the field [a b “c1 c2 c3” d] defines t four values, thethird of which has three words).

[0209] It is permitted for special operators or commands to CON-REGS tobe interspersed within the set of ‘keywords’ values, such as thosecontrolling boolean logic, maximal or minimal adjacency distances, etc.It is up to the registry service to ensure that no ambiguity arisesbetween CON-REGS operators and actual values or between REGS specialoperators and CON-REGS operators. REGS special operators always takeprecedence over any CON-REGS operators.

[0210] Required CON-REGS profile properties are all Identity andQualifier properties required to uniquely identify each data storageitem or qualified data item in question; either the ‘location’ or‘agency’ property; and the ‘keywords’ property containing a unique,minimal set of index terms for the item in question. Allowed CON-REGSprofile properties are all required properties, as well as the ‘title’property (recommended).

[0211] Required CON-REGS query properties are the ‘keywords’ propertycontaining the set of index terms to search on which may need to bedistilled into a unique, minimal set of base forms by the registryservice. Allowed CON-REGS query properties are all required properties,as well as the ‘fragment’ property with either wildcard value or negatedwildcard value only.

[0212] Typological Registry Service (TYPE-REGS) provides for searchingthe set of ‘class’ property values (including any inherited values) forall media instances according to the typologies defined for theinformation contained in the included archives. The results of a searchare a set of profiles defining zero or more media instances.

[0213] In addition to the literal matching of property values, such asprovided by META-REGS, TYPE-BEGS also matches query values to targetvalues taking into account one or more “IS-A” type hierarchies asdefined by the typologies employed such that a target value which is anancestor of a query value also matches (e.g., a query value of “dog”would be expected to match a target value of “animal”). If only exactmatching is required (such that, e.g., “dog” only matches “dog”) thenMETA-REGS should be used.

[0214] TYPE-REGS does not differentiate between classification valuesthat belong to different typologies nor for any ambiguity which mayarise from a single value being associated with multiple typologies withpossibly differing semantics. It is only responsible for efficientlylocating all media instances that have defined values matching those inthe input query. If conflicts arise from the use of multiple typologieswithin the same environment, it is recommended that separate registrydatabases be generated and referenced for each individual typology.

[0215] Required TYPE-REGS profile properties are those Identityproperties which explicitly and completely define the media instance,one or more values defined for the ‘class’ property, as well as eitherthe ‘location’ or ‘agency’ property. Allowed TYPE-REGS profileproperties are all required properties, as well as the ‘title’ property(recommended).

[0216] Required TYPE-BEGS query properties are the ‘class’ propertycontaining the set of classifications to search. Allowed TYPE-BEGS queryproperties are restricted to the ‘class’ property which is the onlyproperty allowed in TYPE-BEG search queries.

[0217] Dependency Registry Service (DEP-REGS) provides for searching theset of Association property values (including any inherited values)which can be represented explicitly using MARS Identity semantics forall bodies of information in the included archives. The results of asearch are a set of profiles defining zero or more targets 30 matchingthe search query.

[0218] DEP-REGS may be used to identify relationships between bodies ofinformation within a given environment such as a document which servesas the basis for a translation to another language or a conversion to analternate encoding, a high level diagram which summarizes the basiccharacteristics of a much more detailed low level diagram or set ofdiagrams, a reusable documentation component which serves as partialcontent for a higher level component, etc.

[0219] The ability to determine such relationships, many of which may beimplicit in the data in question, is crucial for managing large bodiesof information where changes to one media instance may impact thevalidity or quality of other instances. For example, to locate alltargets that immediately include a given instance in their content, onewould construct a query containing the ‘includes’ property with a valueconsisting of a URI identifying the instance, such as an MRN. DEP-REGSwould then return profiles for all targets that include that instance asa value of their ‘includes’ property. Similarly, to locate all targetsthat contain referential links to a given instance, one would constructa query containing the ‘refers’ property with a value identifying theinstance.

[0220] DEP-REGS can be seen as a specialized form of META-REGS, basedonly on the minimal set of Identity and Association properties.Furthermore, in contrast to the literal matching of property values suchas performed by META-REGS, DEP-REGS matches Association query values totarget values by applying on-the-fly mapping between all equivalent URIvalues when making comparisons; such as between an MRN and an Agency CGIURL, or between two non-string-identical Agency CGI URLs, which bothdefine the same resource (regardless of location). Note that if theMETA-REGS implementation provides such equivalence mapping of URIvalues, then a separate DEP-REGS implementation is not absolutelyrequired, though one may be still employed on the basis of efficiency,given the highly reduced number of properties in a DEP-REGS profile.

[0221] Required DEP-REGS profile properties are the identity propertiesthat explicitly and completely define the body of information, alldefined Association properties, as well as either the ‘location’ or‘agency’ property. Allowed DEP-REGS profile properties are all requiredproperties, as well as the ‘title’ property (recommended).

[0222] Required DEP-REGS query properties are one or more Associationproperties. Allowed DEP-REGS query properties are one or moreAssociation properties.

[0223] Process Registry Service (PRO-BEGS) provides for searching over15 sequences of state or event identifiers (state chains) which areassociated with specific components of or locations within proceduraldocumentation or other forms of temporal information. The results of asearch are a set of profiles defining zero or more targets matching thesearch query.

[0224] PRO-REGS can be used for, among other things, “process sensitivehelp” where a unique identifier is associated with each significantpoint in procedures or operations defined by procedural documentation,and software which is monitoring, guiding, and/or managing the procedurekeeps a record of the procedural states activated or executed by theuser. At any time, the running history of executed states can be passedto PRO-BEGS as a query to locate documentation which most closelymatches that sequence of states or events, up to the point of thecurrent state, so that the user receives precise information about howto proceed with the given procedure or operation exactly from where theyare. The procedural documentation would presumably be encoded using someform of functional mark-up (e.g. SGML, XML, HTML) and generation of theprofiles identifying paths to states or steps in the proceduraldocumentation would be automatically generated based on analysis of thedata content, recursively extracting the paths of special stateidentifiers embedded in the mark-up and producing a profile identifyinga qualified data item to each particular point in the documentationusing the ‘pointer’ property.

[0225] Required PRO-REGS profile properties are the identity propertiesthat explicitly and completely define the body of information, the‘class’ property defining the sequence of state identifiers up to theinformation in question, as well as either the ‘location’ or ‘agency’property. Allowed PRO-REGS profile properties are all requiredproperties, as well as the ‘title’ property (recommended).

[0226] Required PRO-REGS query properties are the ‘class’ propertydefining a sequence of state identifiers based on user navigationhistory. Allowed PRO-REGS query properties are restricted solely to the‘class’ property allowed in search queries.

[0227] It was noted previously that in order to improve the readabilityof the specification, sections that describe in detail all aspects of aparticular function processing or operability and that relate to thedescription relating to the embodiments described herein, would beincluded at the end of the specification. These sections are detailedfollowing and include sections for the Metia Framework for ElectronicMedia, Media Attribution and Reference Semantics (MARS), Portable MediaArchive (PMA), Generalized Media Archive (GMA), and Registry ServiceArchitecture (REGS).

[0228] Metia Framework for Electronic Media

[0229] 1 Scope

[0230] This section defines the Metia Framework for Electronic Media, ageneralized metadata driven framework for the management anddistribution of electronic media.

[0231] 2 Overview

[0232] The Metia Framework defines a set of standard, open and portablemodels, interfaces, and protocols facilitating the construction of toolsand environments optimized for the management, referencing,distribution, storage, and retrieval of electronic media; as well as aset of core software components (agents) providing functions andservices relating to archival, versioning, access control, search,retrieval, conversion, navigation, and metadata management. The MetiaFramework is designed to embody the following qualities andcharacteristics:

[0233] Open

[0234] The framework is based on open standards and proven technologieswherever possible, and all framework specific properties andcharacteristics are fully documented.

[0235] Scalable

[0236] Environments based on the framework should function equally wellwith both few and many agents, on a single machine or across adistributed network, and on both small and large systems; whereperformance issues are primarily tied to the properties and capabilitiesof the individual agents and/or systems and network bandwidth, and notto properties of the framework itself.

[0237] Modular

[0238] All agents within a given environment interact efficiently andeffectively with one another with little to no specialized configurationand with no special knowledge of the implementation details ofparticular agents.

[0239] Portable

[0240] Agents conforming to the framework can be implemented on a broadrange of platforms using practically any tools, programming languages,or other means. The core software components provided by the frameworkitself are implemented in Java, providing maximal portability todifferent platforms and environments.

[0241] Distributed

[0242] Agents are not limited to data or the services of other agentsrunning on the same machine, but may interact (often transparently) withagents running on any machine which is accessible over the network.

[0243] Reusable

[0244] The framework provides for maximal use and reuse of existingsoftware components and agents, where more complex agents areimplemented using the services of more specialized agents. This allowsrefinement and extension of processes with little to no modification toany existing implementation.

[0245] Extensible

[0246] Additional agents may be added to any environment based on theframework with little to no impact to and/or reconfiguration of anyexisting agents.

[0247] 3 Related Documents, Standards, and Specifications

[0248] 3.1 Media Attribution and Reference Semantics (MARS)

[0249] Media Attribution and Reference Semantics (MARS), a component ofthe Metia Framework, is a metadata specification framework and corestandard vocabulary and semantics facilitating the portable management,referencing, distribution, storage and retrieval of electronic media.

[0250] 3.2 Generalized Media Archive (GMA)

[0251] The Generalized Media Archive (GMA), a component of the MetiaFramework, defines an abstract archival model for the storage andmanagement of data based solely on Media Attribution and ReferenceSemantics (MARS) metadata; providing a uniform, consistent, andimplementation independent model for information storage and retrieval,versioning, and access control.

[0252] 3.3 Portable Media Archive (PMA)

[0253] The Portable Media Archive (PMA), a component of the MetiaFramework, is a physical organization model of a file system based datarepository conforming to and suitable for implementations of theGeneralized Media Archive (GMA) abstract archival model.

[0254] 3.4 Registry Service Architecture (REGS)

[0255] The Registry Service Architecture (REGS), a component of theMetia Framework, is a generic architecture for dynamic query resolutionagencies based on the Metia Framework and Media Attribution andReference Semantics (MARS), providing a unified interface model for abroad range of search and retrieval tools.

[0256] 3.5 HyperText Transfer Protocol (HTTP)

[0257] The Hypertext Transfer Protocol (HTTP) is an application-levelprotocol for distributed, collaborative, hypermedia information systems.It is a generic, stateless, protocol which can be used for many tasksbeyond its use for hypertext, such as name servers and distributedobject management systems, through extension of its request methods,error codes and headers. A feature of HTTP is the typing and negotiationof data representation, allowing systems to be built independently ofthe data being transferred. The Metia Framework distributedcollaboration model is based primarily on HTTP.

[0258] 3.6 Common Gateway Interface (CGI)

[0259] The Common Gateway Interface (CGI) is a standard for interfacingexternal applications with information servers, such as Web servers.Within the new Metia Framework, CGI will serve as the primarycommunication mechanism between networked clients and software agents.

[0260] 3.7 Portable Operating System Interface (POSIX)

[0261] POSIX (Portable Operating System Interface) is a set of standardoperating system interfaces based on the UNIX operating system. ThePOSIX interfaces were developed under the auspices of the IEEE(Institute of Electrical and Electronics Engineers). The Metia Frameworkadopts the POSIX models for command line arguments, standard inputstreams, standard output streams, and standard error streams.

[0262] 3.8 CORBA

[0263] CORBA specifies a system which provides interoperability betweenobjects in a heterogeneous, distributed environment and in a waytransparent to the programmer. Its design is based on OMG Object Model.Metia Framework agents may utilize CORBA as one of several means ofagent intercommunication.

[0264] 3.9 Java

[0265] Java is both a programming language and a platform. Java is ahigh-level programming language that claims to be simple,architecture-neutral, object-oriented, portable, distributed,high-performance, interpreted, multithreaded, robust, dynamic, andsecure. The Java platform is a “virtual machine” which is able to runany Java program on any machine for which an implementation of the Javavirtual machine (JVM) exists, which is most operating systems commonlyin use today. The core software components and agents provided by theMetia Framework are implemented in Java.

[0266] 3.10 W3C TR REC-xml: XML (eXtensible Markup Language)

[0267] The eXtensible Markup Language (XML) describes a class of dataobjects called XML documents and partially describes the behavior ofcomputer programs which process them. XML is an application profile orrestricted form of SGML, the Standard Generalized Markup Language. Byconstruction, XML documents are conforming SGML documents. XML is usedfor the serialization, interchange, and (typically) persistent storageof MARS metadata property sets. The Metia Java SDK provides for theimportation and exportation of MARS XML encoded instances to and fromMARS class instances.

[0268] 3.11 W3C TR rdf-syntax: RDF (Resource Description Framework)

[0269] The Resource Description Framework (RDF) is a foundation forprocessing metadata; it provides interoperability between applicationsthat exchange machine-understandable information in a distributedenvironment. The Metia Framework uses RDF for defining the semantics ofmetadata properties.

[0270] 3.12 W3C TR rdf-schema: RDF Schemas

[0271] RDF Schemas provides information about the interpretation of thestatements given in an RDF data model and may be used to specifyconstraints that should be followed by these data models. The MetiaFramework uses RDF Schemas for relating metadata properties and values ato disjunct but synonymous vocabularies such as Nokia Metadata forDocuments and the Dublin Core.

[0272] 4 Key Terms and Concepts

[0273] 4.1 Agent

[0274] An agent is a software application which conforms to theinterface and protocol requirements defined by this specification, andwhich provides one or more specific and well defined services oroperations. Per the general qualities derived from the Metia Framework,every agent can be said to exhibit the following two qualities:

[0275] Modular

[0276] The implementation details of the agent are hidden behind thegeneric interfaces and protocols of the framework, such that any otheragent, user, client, or process can interact with the agent without anyprivileged knowledge of its internal workings.

[0277] Distributed

[0278] Every agent is accessible over the network from any system whichhas access to the system on which the agent resides. In addition to theabove, an agent may also exhibit one or more of the following qualities:

[0279] Intelligent

[0280] An agent may be sensitive to the environment, system, orparticular context in which it is operating, automatically adjusting itsbehavior accordingly.

[0281] Replicating

[0282] An agent may create copies of itself to optimize processing of agiven operation by dividing portions of the task to each copy, which(depending on the underlying system) may be executed in parallel.

[0283] Persistent

[0284] An agent may remain in memory and function beyond the duration ofa single operation, maintaining information from previous operationswhich may optimize or otherwise facilitate subsequent operations.

[0285] Collaborative

[0286] An agent may utilize the services of other agents to perform anoperation, and management of available agents and their services may behandled by a specialized “broker” agent with which available agentsregister. A collaborative agent is typically also a persistent agent.

[0287] Mobile

[0288] An agent may move from machine to machine (create a copy ofitself on another machine and then terminate), if needed to accomplish agiven operation (such as updating information in a variety oflocations). A mobile agent is typically also a persistent, replicatingagent.

[0289] 4.2 Agency

[0290] An agency is a set of specific and well defined services and/oroperations typically implemented by a set of agents (or other softwarecomponents, systems, or tools) which are organized under and accessedvia a single managing agent. Technically, every agent can be viewed asan agency. The difference is primarily one of perspective. An agency isthe abstract functionality and behavior embodied in (or provided via) anagent. The agent itself may be nothing more than a proxy to some othersystem or service (such as an RDBMS application) which actuallyimplements those services. Thus, while the agent may essentially providethe full range of functionality defined for an agency, it may notimplement the full functionality of the agency itself.

[0291] 5 Framework Architecture

[0292] The Metia Framework architecture is based on a standard webserver running on a platform which provides the basic POSIX command lineand standard input/output stream functionality (see diagram on nextpage). One of the goals of the framework is to be media neutral, suchthat the particular encoding of any data is not relevant to storage byor interchange between agents. This does not mean that specificencodings or other media constraints may not exist for any givenenvironment implementing the framework, depending on the operatingsystem(s), tools, and processes used, only that the framework itselfaims not to impose any such constraints itself. Every agent conformingto the framework must provide two interfaces: (1) HTTP+CGI, and (2)POSIX command line+standard input/output/error. In addition to these, anagent may also provide interfaces based on (3) Java method invocationand/or (4) CORBA method invocation. These interfaces are defined ingreater detail below. Any given agent (or other user, client, orprocess) is free to choose among the available interfaces provided by anagent; whichever is most optimal for the particular context orapplication. Non-agent systems, processes, tools, or services which areutilized by an agent can still be accessed via proprietary means ifnecessary or useful for any operations or processes outside of the scopeof the framework. Thus, framework based tools and services can co-existfreely with other tools and services utilizing the same resources.

[0293] 5.1 Framework Protocols and Interfaces

[0294] 5.1.1 Media Attribution and Reference Semantics (MARS)

[0295] MARS is the language by which agents communicate and is the“heart” of the Metia Framework. All other protocols and interfacesdefined by the framework are merely a means to transfer data streamswhich are defined, directed, and controlled by MARS metadata. Seesection 6.1 and the separate MARS specification.

[0296] 5.1.2 POSIX

[0297] The framework adopts the POSIX standard specifications forcommand line arguments, standard input stream, standard output stream,and standard error stream as the primary local (system internal)interface used for agent intercommunication and data interchange. Everyframework agent must provide a POSIX interface. See section 5.2.1 belowregarding MARS command line and standard input parameter encoding.

[0298] 5.1.3 HTTP+CGI

[0299] The framework adopts HTTP+CGI as the primary distributed(network) interface used for agent intercommunication and datainterchange. Every framework agent must provide an HTTP+CGI interfaceusing the HTTP GET method. See section 5.2.1 below regarding MARS CGIparameter encoding.

[0300] 5.1.4 Java

[0301] Agents which are implemented using the Metia Framework SDK willprovide for direct method invocation according to the Agency Javainterface, included in the SDK.

[0302] 5.1.5 CORBA

[0303] Agents may provide for direct method invocation via a CORBAinterface according to the Agency IDL interface, included in the MetiaFramework SDK.

[0304] 5.2 Agent Intercommunication

[0305] Agents communicate with one another, and with external clientsand processes, using MARS metadata semantics, encoded as a property set(a set of values associated with named properties. MARS property setsare the only allowed means of communication, regardless of the interfaceused.

[0306] 5.2.1 Property Set Specification

[0307] MARS property sets can be passed to any agent in one of thefollowing ways:

[0308] 1. Command Line Arguments (multiple sets separated by the specialargument‘--’)

[0309] Examples:

[0310] -identifier xyz123 -language en -encoding xhtml

[0311] -identifier abc -- -identifier def -- -identifier ghi

[0312] 2. HTTP/CGI (Multiple Sets Separated by the Special ValuelessField ‘--’)

[0313] Examples:

[0314] http://...&identifier=xyz123&language=en&encoding=xhtml

[0315] http://...&identifier=abc&--&identifier=def&--&identifier=ghi

[0316] 3. Standard Input, Encoded as XML Instance

[0317] Examples: <?xml version=‘1.0’?> <MARS> <property_set><identifier><token>xyz123</token></identifier><language><l:en/></language> <encoding><xhtml/></encoding></property_set> </MARS> <?xml version=‘1.0’?> <MARS> <property_set><identifier><token>abc</token></identifier> </property_set><property_set> <identifier><token>def</token></identifier></property_set> <property_set><identifier><token>ghi</token></identifier> </property_set> </MARS>

[0318] 4. Software Method Invocation (Passing Instantiated MARS Object).

[0319] Examples:

[0320] myAgent.retrieve(myMARS);

[0321] myAgent.generate(sourceMARS, targetMARS);

[0322] Command Line/CGI arguments take precedence over standard input,and if specified, standard input, if any, is treated only as an inputdata stream. Most interaction between agents will specify operations viaeither command line or CGI arguments. Every agent, regardless ofimplementation, must provide support for the first three interfacesdefined above (command line, CGI, and standard input). Agentsimplemented using the Metia SDK must provide support for the fourthinterface defined above (method invocation).

[0323] 5.2.2 Interpretation of Multiple Property Sets

[0324] If multiple property sets are specified, either via arguments orstandard input, then they are to be interpreted as follows:

[0325] 1. The first property set must contain an action property value.

[0326] 2. If only one property set is defined, then the single action isperformed as specified by the property set.

[0327] 3. If the action of the first property set is ‘store’, theneither both the component property must equal ‘meta’ and the itemproperty must equal ‘data’ or the item property must equal ‘meta’; inwhich case the second property set is taken to be a metadata propertyset to be stored persistently. It is then an error for there to be morethan two property sets in the input.

[0328] 4. If the action of the first property set is ‘generate’, thenthe first property set is taken as defining the target of the generationand the second property set is expected to define the source of thegeneration which must be retrieved. Any subsequent property sets aretaken to be part of a compound action to be applied in succession to theresults of the generation. It is then an error for any subsequentproperty set not to have an action defined.

[0329] 5. If all property sets have an action defined, then the input istaken to be a compound action, and each action is to be applied to theresults of the previous action in succession. If a preceding actionreturns a data stream, then the subsequent action is to take that streamas input; otherwise, it is to retrieve the first item explicitlyspecified by a preceding property set.

[0330] 6. If the ‘locate’ action is included in a compound actionsequence, then the chain of subsequent actions following the locateaction are applied in succession to each of the items identified by thelocate action. All other combinations of property sets are eitherinvalid or left to the custom interpretation of the particular agent. Itis not permitted for any Metia agent to apply an interpretation whichconflicts with the interpretation specified above.

[0331] 5.2.3 Diagnostics and Error Notification

[0332] All errors, warnings, cautions, and other notes output by anagent which are not part of a result value must be output on thestandard error port composed as an XML instance conforming to the MetiaFramework Diagnostics DTD:

[0333] 5.2.3.1 Diagnostic Notification Types

[0334] The Metia Framework Diagnostics DTD provides for the followingnotification types:

[0335] Error

[0336] An error signals an occurance which prevents an agent fromcontinuing a particular process or task. The error condition may or maynot be recoverable. Typically it is not.

[0337] Warning

[0338] A warning constitutes a condition or occurance which could causeloss or corruption of information, damage to equipment, or failure of acritical service.

[0339] Caution

[0340] A caution constitutes a condition or occurance which could affectthe efficiency of equipment or of a service, or which may limit theeffectiveness of a given process.

[0341] Note

[0342] A note constitutes any general information about equipment, aservice, a process, or data which is considered significant.

[0343] Debug

[0344] A debug notification is any general information about theoperation of the agent as regards its implementation and which might bemeaningful to developers or maintainers of the agent software.

[0345] The content of any given notification is free-form may consist ofpre-formatted diagnostics from legacy tools or systems, well formed XMLmarkup, or any other textual data. By default, any given agent receivingdiagnostics from another agent is required only to be able to recognizethe particular notification type(s) and optionally display the literalnotification(s) content (including any markup) to an end-user.Particular agents, however, may contract to use specific markup fornotification content to facilitate specialized processing and/or displayof notifications.

[0346] 5.2.3.2 Diagnostics in a CGI Environment

[0347] In the case of an agent operating in a CGI environment, whichdoes not provide for separate standard output and standard errorstreams, diagnostics may be returned either in place of the return value(in the case of a fatal error) or as part of a multipart MIME streamconsisting first of the return value and secondly of the diagnosticsinstance.

[0348] 6 Framework Components

[0349] The Metia Framework is comprised of a number of components, eachdefining a core area of functionality needed in the construction of acomplete production and distribution environment.

[0350] Each framework component is defined separately by its ownspecification. This section only summarizes the role of each componentwithin the Metia Framework. Please consult the specification for eachframework component for more detailed information.

[0351] 6.1 Media Attribution and Reference Semantics (MARS)

[0352] Media Attribution and Reference Semantics (MARS) is a metadataspecification framework and core standard vocabulary and semanticsfacilitating the portable management, referencing, distribution, storageand retrieval of electronic media.

[0353] MARS is the common “language” by which the different MetiaFramework agencies communicate.

[0354] MARS is designed specifically for the definition of metadata foruse by automated systems and for the consistent, platform independentcommunication between software components storing, exchanging,modifying, accessing, searching, and/or displaying various types ofelectronic media such as documentation, images, video, etc. It isdesigned with considerations for automated processing and storage bycomputer systems in mind, not particularly for direct consumption byhumans; though mechanisms are provided for associating with any givenmetadata property one or more presentation labels for use in userinterfaces, reports, forms, etc.

[0355] MARS aims to fulfill the following two goals:

[0356] 1. To define a framework within which metadata can be explicitlydefined and efficiently and reliably processed by automated systems.

[0357] 2. To define a core metadata vocabulary of properties and valuesfor automated systems used for storing, exchanging, operating on, and/ordisplaying electronic media.

[0358] Utilizing a common abstract metadata vocabulary and semantics forall reference and communication functions by all agents within theframework affords a considerable amount of modularity, salability, andflexibility for any given set of agents, as each agent constitutes a“black-box” and specific implementation details are irrelevant insofaras their interaction with users and other agents is concerned, and newagents added to an environment are immediately and transparently usableby existing processes. The core MARS vocabulary also provides for aninformation rich environment enabling processes and operations notpossible using only simple identifiers such as filenames, URL's, DOI's,and similar.

[0359] 6.1.1 XML

[0360] XML is used for the serialization, interchange, and (typically)persistent storage of MARS metadata property sets. The Metia Java SDKprovides for the importation and exportation of MARS XML encodedinstances to and from MARS class instances.

[0361] 6.1.2 XML DTD

[0362] An XML DTD for the general framework and for the core propertiesdefined by MARS is defined as a component of the Metia Framework. Thecommon tools and processes operating on or directed by MARS metadatamust support metadata property value sets encoded as XML instancesconforming to this DTD.

[0363] The defined DTD provides mechanisms by which additionalproperties and property values are defined as needed by particularbusiness units, product lines, processes, etc.

[0364] 6.1.3 XML Schema

[0365] An XML Schema for the general framework and for the coreproperties defined by MARS is defined as a component of the MetiaFramework, and the common tools and processes operating on or directedby MARS metadata must support metadata property value sets encoded asXML instances conforming to this Schema.

[0366] The XML Schema provides for more rigorous validation of MARS XMLinstances, and is recommended over validation by DTD wherever possible.The defined XML Schema provides mechanisms by which additionalproperties and property values are defined as needed by particularbusiness units, product lines, processes, etc.

[0367] 6.1.4 RDF Schema

[0368] An RDF Schema for the core properties defined by MARS is definedas a component of the Metia Framework, and which grounds their semanticinterpretation of MARS in the Dublin Core and Nokia Metadata forDocuments, as well as provides a foundation for defining additionalsemantic qualities of the core vocabulary and its relationships to othervocabularies.

[0369] 6.2 Generalized Media Archive (GMA)

[0370] The Generalized Media Archive (GMA) is an abstract archival modelfor the storage and management of data based solely on Media Attributionand Reference Semantics (MARS) metadata; providing a uniform,consistent, and implementation independent model for information storageand retrieval, versioning, and access control.

[0371] The GMA is a central component of the Metia Framework and servesas the common archival model for all managed media controlled and/oraccessed by Metia Framework agencies. It constitutes an Agency, whichmay be implemented as one or more Agents.

[0372] The GMA provides a uniform, generic, and abstract organizationalmodel and functional interface to a potentially wide range of actualarchive implementations; independent of operating system, file system,repository organization, or other implementation details. Thisabstraction facilitates the creation of tools, processes, andmethodologies based on this generic model and interface which areinsulated from the internals of the GMA compliant repositories withwhich they interact.

[0373] The GMA defines specific behavior for basic storage andretrieval, access control based on user identity, versioning, andautomated generation of variant encodings. The identity of individualstorage items is based on MARS and all interaction between a client anda GMA implementation must be expressed as MARS metadata property sets.

[0374] 6.3 Portable Media Archive (PMA)

[0375] The Portable Media Archive (PMA) is a physical organization modelof a file

[0376] system based

[0377] data repository conforming to and suitable for implementations ofthe Generalized Media

[0378] Archive (GMA) abstract archival model.

[0379] The PMA defines an explicit yet highly portable file systemorganization for the storage and retrieval of information based on MediaAttribution and Reference Semantics (MARS) metadata. The PMA uses theMARS Identity and Item Qualifier metadata property values themselves asdirectory and/or file names, avoiding the need for a secondaryreferencing mechanism and thereby simplifying the implementation,maximizing efficiency, and producing a mnemonic organizationalstructure.

[0380] Any GMA may use a physical organization model other than the PMA.The PMA physical archival model is not a requirement of the GMA abstractarchival model. However, the PMA may nevertheless be employed by suchimplementations both as a data interchange format between disparate GMAimplementations as well as a format for storing portable backups of agiven archive.

[0381] 6.4 Registry Service Architecture (REGS)

[0382] The Registry Service Architecture (REGS) is a genericarchitecture for dynamic query resolution agencies based on the MetiaFramework and Media Attribution and Reference Semantics (MARS),providing a unified interface model for a broad range of search andretrieval tools. A particular registry service constitutes an Agency,which may be implemented as one or more Agents.

[0383] REGS provides a generic means to interact with any number ofspecialized search and retrieval tools using a common set of protocolsand interfaces based on the Metia Framework; namely MARS metadatasemantics and either a POSIX or CGI compliant interface. As with otherMetia Framework components, this allows for much greater flexibility inthe implementation and evolution of particular solutions whileminimizing the interdependencies between the tools and their users(human or otherwise).

[0384] Being based on MARS metadata allows for a high degree ofautomation and tight synchronization with the archival and managementsystems used in the same environment, with each registry servicederiving its own registry database directly from the metadata stored inand maintained by the various archives themselves; while at the sametime, each registry service is insulated from the implementation detailsof and changes in the archives from which it receives its information.

[0385] Every registry service shares a common architecture andfundamental behavior, differing primarily only in the actual metadataproperties required for their particular application.

[0386] 6.5 Java SDK

[0387] The Metia Java SDK (Software Development Kit) provides softwarecomponents implementing the core models and behavior defined by theMetia Framework and its components.

[0388] The SDK is implemented in Java conforming to the Java 2 platformspecification and resides in the Java package com.nokia.ncde. Thissection provides a general overview of the principle classes andinterfaces defined in the SDK. Consult the JavaDoc documentation formore information about these and other classes and components.

[0389] 6.5.1 MARS

[0390] MARS (com.nokia.ncde.MARS) is a Java class which provides auniform container for storing, accessing, defining, and passing MARSmetadata property sets, including methods for importing from andexporting to XML encoded instances conforming to the MARS DTD.

[0391] 6.5.2 Agency

[0392] Agency (com.nokia.ncde.Agency) is a Java interface which definesthe common behavior (methods) which are implemented and shared by allFramework agents.

[0393] 6.5.3 Agent

[0394] Agent (com.nokia.ncde.Agent) is a Java abstract class whichimplements the Agency interface and provides default methods for basicagent behavior and which is typically the parent or ancestor class ofspecific agent implementations built using the Metia SDK.

[0395] 6.5.4 AgentProxy

[0396] AgentProxy (com.nokia.ncde.AgentProxy) is a Java wrapper classwhich provides a convenient mechanism for interacting with the networkCGI interface of any Agency, as if it were a local object within a Javaapplication (typically an agent).

[0397] 6.5.5 AgentServlet

[0398] AgentServlet (com.nokia.ncde.AgentServlet) is a Java wrapperclass which provides Java Servlet functionality to any classimplementing the Agency interface.

[0399] 6.5.6 AgentServer

[0400] AgentServer (com.nokia.ncde.AgentServer) is a Java wrapper classwhich provides CORBA server functionality to any class implementing theAgency interface.

[0401] 6.5.7 AgentClient

[0402] AgentClient (com.nokia.ncde.AgentClient) is a Java wrapper classwhich provides CORBA client functionality to any class implementing theAgency interface.

[0403] MARS: Media Attribution and Reference Semantics

[0404] 1 Scope

[0405] This section defines the Media Attribution and ReferenceSemantics (MARS), a metadata specification framework and core standardvocabulary and semantics facilitating the portable management,referencing, distribution, storage and retrieval of electronic media.

[0406] 2 Overview

[0407] MARS is designed specifically for the definition of metadata foruse by automated systems and for the consistent, platform independentcommunication between software components storing, exchanging,modifying, accessing, searching, and/or displaying various types ofinformation such as documentation, images, video, etc. It is designedwith considerations for automated processing and storage by computersystems in mind, not particularly for direct consumption by humans;though mechanisms are provided for associating with any given metadataproperty one or more presentation labels for use in user interfaces,reports, forms, etc. MARS aims to fulfill the following two goals:

[0408] 1. To define a framework within which metadata can be explicitlydefined and efficiently and reliably processed by automated systems.

[0409] 2. To define a core metadata vocabulary of properties and valuesfor automated systems used for storing, exchanging, operating on, and/ordisplaying electronic media.

[0410] Extensibility of the core vocabulary is of course of paramountimportance, as MARS cannot address all of the needs of all groups,systems, processes, products fully and still serve as a manageablestandard; nor can it foresee all possible needs and applications in thefuture; however, it remains possible and beneficial both to define asrigorously as possible a framework for metadata and a core vocabularyand then enable extensions and enhancements to that core as needed,within the constraints of that framework.

[0411] It is important to note that the core vocabulary defined by MARSis data-centric and not use-centric, in that the metadata propertiesdefined therein apply primarily to characteristics or attributes of thedata itself, and not how, where, or by whom the data is used orreferenced. Processes such as for Product Data Management (PDM),Configuration Management (CM), and Work Flow Management (WFM) are notdirectly addressed in the core MARS vocabulary as these define uses ofthe data and not characteristics of the data itself.

[0412] The core vocabulary is specifically designed to meet the needs oforganization and management processes applied to large volumes oftechnical and user documentation, though the framework and most if notall of the core vocabulary is applicable to many other applications aswell.

[0413] 3 Related Documents, Standards, and Specifications

[0414] 3.1 Metia Framework for Electronic Media

[0415] The Metia Framework is a generalized metadata driven frameworkfor the management and distribution of electronic media which defines aset of standard, open and portable models, interfaces, and protocolsfacilitating the construction of tools and environments optimized forthe management, referencing, distribution, storage, and retrieval ofelectronic media; as well as a set of core software components (agents)providing functions and services relating to archival, versioning,access control, search, retrieval, conversion, navigation, and metadatamanagement.

[0416] MARS is a component of the Metia Framework and serves as thecommon “language” by which the different Metia Framework agentscommunicate.

[0417] 3.2 Generalized Media Archive (GMA)

[0418] The Generalized Media Archive (GMA), a component of the MetiaFramework, is an abstract archival model for the storage and managementof data based solely on Media Attribution and Reference Semantics (MARS)metadata; providing a uniform, consistent, and implementationindependent model for information storage and retrieval, versioning, andaccess control.

[0419] 3.3 Portable Media Archive (PMA)

[0420] The Portable Media Archive (PMA), a component of the MetiaFramework, is a physical organization model of a file system based datarepository conforming to and suitable for implementations of theGeneralized Media Archive (GMA) abstract archival model.

[0421] 3.4 Registry Service Architecture (REGS)

[0422] The Registry Service Architecture (REGS), a component of theMetia Framework, is a generic architecture for dynamic query resolutionagencies based on the Metia Framework and Media Attribution andReference Semantics (MARS), providing a unified interface model for abroad range of search and retrieval tools.

[0423] 3.5 Nokia Metadata for Documents

[0424] MARS is a derivative of Nokia Metadata for Documents. MARSdeviates from that work to some degree in order to meet the specificrequirements of the Metia Framework; primarily where identity andmanagement properties and more rigorous data typing is required.

[0425] Within all systems and environments based on Metia Framework,MARS supersedes the Nokia Metadata for Documents specification for allmetadata related applications.

[0426] 3.6 The Dublin Core

[0427] The Dublin Core is a metadata element set intended to facilitatediscovery of electronic resources. Originally conceived forauthor-generated description of Web resources, it has attracted theattention of formal resource description communities such as museums,libraries, government agencies, and commercial organizations.

[0428] MARS can be viewed as a functional superset of the Dublin Core,and an RDF Schema for MARS could be created which inherits directly fromthe Dublin Core RDF Schema, such that any tools which are designed tooperate on Dublin Core compliant metadata will also be able to operatecorrectly on MARS compliant metadata.

[0429] 3.7 ISO 639: Language Codes

[0430] ISO 639 specifies a set of two-letter codes represented bycase-insensitive ASCII characters which uniquely identify worldlanguages.

[0431] MARS adopts ISO 639 language codes for the allowed values ofcertain property types.

[0432] 3.8 ISO 3166-1: Country Codes

[0433] ISO 3166-1 specifies a set of two-letter codes represented bycase-insensitive ASCII characters which uniquely identify countries.

[0434] MARS adopts ISO 3166-1 country codes for the allowed values ofcertain property types.

[0435] 3.9 ISO 8601: General Date and Time Formats

[0436] ISO 8601 specifies a number of standard methods for encoding dateand time information, for portability between different computer systemsand applications.

[0437] MARS adopts a subset of ISO 8601 encodings for the allowed valuesof certain property types.

[0438] 3.10 W3C TR NOTE Datetime: Specific Date and Time Formats

[0439] The datetime W3C TR note defines a profile of ISO 8601, theInternational Standard for the representation of dates and times,restricting the supported formats to a smaller number likely to satisfymost requirements.

[0440] MARS adopts a subset of the W3C datetime NOTE encodings for theallowed values of certain property types.

[0441] 3.11 RFC 2046: MIME (Multipurpose Internet Mail Extensions)

[0442] The IETF MIME standard defines a platform independent andportable media typing system and defines an initial set of media typesand general media encoding properties. The MIME system is used by abroad range of internet and other systems, standards, and protocols.

[0443] MARS adopts RFC 2046 content type and character set identifiersfor the allowed values of certain property types.

[0444] 3.12 W3C TR xptr: XML Pointer Language

[0445] XPointer, which is based on the XML Path Language (XPath),supports addressing into the internal structures of XML documents. Itallows for traversals of a document tree and choice of its internalparts based on various properties, such as element types, attributevalues, character content, and relative position.

[0446] MARS adopts W3C XPointer syntax for the allowed values of certainproperty types.

[0447] 3.13 Common Gateway Interface (CGI)

[0448] The Common Gateway Interface (CGI) is a standard for interfacingexternal applications with information servers, such as Web servers.Within the new Metia Framework, CGI will serve as the primarycommunication mechanism between networked clients and software agents.

[0449] The MARS Agency data type is comprised of a CGI URL prefix.

[0450] 3.14 RFC 2396: Uniform Resource Identifier (URI)

[0451] A Uniform Resource Identifier (URI) is a compact string ofcharacters for identifying an abstract or physical resource. It servesas the general syntax by which URNs, URLs, and other identifiers aredefined.

[0452] MARS adopts RFC 2396 URIs for the allowed values of certainproperty types.

[0453] 3.15 RFC 2141: Uniform Resource Name (URN)

[0454] Uniform Resource Names (URNs) are intended to serve aspersistent, location-independent, resource identifiers and are designedto make it easy to map other namespaces (which share the properties ofURNS) into URN-space. The URN syntax provides a means to encodecharacter data in a form that can be sent in existing protocols,transcribed on most keyboards, etc. MARS adopts RFC 2141 URNs for theallowed values of certain property types.

[0455] 3.16 RFC 1738: Uniform Resource Locator (URL)

[0456] A Uniform Resource Locator (URL) is a compact string ofcharacters for identifying a physical resource available via theInternet. It is the most common form of URI presently in use on the web.MARS adopts RFC 1738 URLs for the allowed values of certain propertytypes.

[0457] 3.17 Unicode

[0458] The Unicode Standard is a fixed-width, uniform encoding schemefor written characters and text. The repertoire of this internationalcharacter code for information processing includes characters for themajor scripts of the world, as well as technical symbols in common use.

[0459] MARS adopts Unicode for the allowed values of string propertytypes.

[0460] 3.18 POSIX Regular Expression Syntax

[0461] POSIX (Portable Operating System Interface) is a set of standardoperating system interfaces based on the UNIX operating system. ThePOSIX interfaces were developed under the auspices of the IEEE(Institute of Electrical and Electronics Engineers). Regular expressionsare used to recognize specific patterns within textual data. POSIXdefines a standard encoding for regular expressions.

[0462] MARS expresses property value types using POSIX regularexpression syntax.

[0463] 3.19 Metadata for Graphics in Customer Documentation

[0464] Guidelines for the application of MARS metadata for themanagement of and access to graphics media in the NET CustomerDocumentation Environment (NCDE).

[0465] 4 Key Terms and Concepts

[0466] 4.1 Property

[0467] A property, for the purpose of this specification, is a qualityor attribute which can be assigned or related to an identifiable body ofinformation, and is defined as an ordered collection of one or morevalues sharing a common name. The name of the collection represents thename of the property and the value(s) represent the realization of thatproperty. Typically, constraints are placed on the values which mayserve as the realization of a given property.

[0468] 4.2 Property Set

[0469] A property set is any set of valid MARS metadata properties.

[0470] 4.3 Media Object

[0471] Media objects represent abstract bodies of information aboutwhich we can communicate and which correspond to common organizationalconcepts such as “document”, “book”, “manual”, “chapter”, “section”,“sidebar”, “table”, “image”, “chart”, “diagram”, “graph”, “photo”,“video segment”, “audio stream”, etc.

[0472] They are, however, abstract and have no specification for anygiven language, coverage, or encoding. The same media object can berealized in many languages, with many geographical, regional,distributional, or other variations, and be encoded in a multitude offormats, without affecting in the least the scope and qualities of theinformation that they embody.

[0473] An abstract media object is given an identifier which is intendedto be unique for the entire known universe. So long as all media objectswithin a given environment follow the same identification scheme, or anynumber of mutually exclusive schemes, then all will be well.

[0474] It is up to the tools and processes in use to ensure that mediaobject identifiers remain unique within any given environment.

[0475] 4.4 Media Instance

[0476] A media instance represents a particular realization of anabstract media object for a particular language, coverage, encoding, andrelease. Every distinct combination of these four properties constitutesa different instance of the media object. Some (in fact most) instancesof a given media object will be automatically generated, derived fromsome other instance, particularly those differing in encoding.Similarly, instances in various languages will typically all be derivedfrom a single instance, representing the source language from which alltranslations to other languages are made.

[0477] 4.5 Media Component

[0478] Each media instance is comprised of a set of components, whichare all intimately related to that particular realization andinseparable from it. Most of these components are automaticallygenerated, or are accessed and modified only indirectly via one or morestorage and/or management systems. The only mandatory component for amedia instance is the data component. The existence and use of othercomponents depends on the specific needs, functions, requirements, orprocesses comprising the environment within which that data resides.MARS defines a bounded set of component types; though this may beextended as needed as new requirements, processes, or methodologiesarise.

[0479] Media objects may also contain components, in which case thecomponents are taken to represent properties or other characteristicsinherited by or attributable to each instance of that media object.

[0480] 4.6 Storage Item

[0481] Storage items constitute the only actual physical entities withina MARS based environment. Just as a media instance is comprised of oneor more components, so a component is comprised of one or more storageitems. Items correspond to what would typically be stored in a singlefile or database record, and are the things which are actually created,encoded, modified, transferred, etc. Items may embody content, contentfragments, metadata, revision deltas, or other information needed forthe reliable storage, management, and processing of a given mediacomponent. Items are the discrete computational objects which are passedfrom process to process, and which form the building blocks from whichthe information space and the environment used to manage, navigate, andmanipulate it are formed.

[0482] 4.7 Qualified Data Item

[0483] Any given ‘data’ storage item for any component may be qualifiedin one or more of the following ways:

[0484] 4.7.1 Content Pointer

[0485] MARS provides for referencing (and hence defining an explicitidentity for) specific content within a given item, component, instance,or object; depending on the nature of the reference. E.g., a particularelement within an SGML, HTML, or XML entity can be referenced by aunique element identifier, which would be valid for all of the abovementioned scopes. Alternatively, the reference could be based on aparticular path through the structure of the entity, possibly specifyinga given range of data content characters, in which case it might bevalid only for a particular component or item. MARS adopts the W3CXPointer standard for encoding such content specific references in SGML,HTML, or XML content, and it is up to a given application, process, ormethodology to ensure the validity of references applied at a givenscope. It is recommended that wherever possible that explicit element IDvalues be used for all pointer references and that structural paths anddata content specific references be avoided if at all possible; for thesake of maximal validity of pointer values to all realizations of agiven media object, irrespective of language, coverage, encoding, orpartitioning. Though XPointer is not yet a final Recommendation by theW3C, and some changes may occur within the standard, it is presently aCandidate Recommendation and is expected to reach full Recommendationstatus in the very near future.

[0486] Future versions of MARS may adopt additional internal pointermechanisms for other encodings as needed and as available.

[0487] Content pointers are only defined for ‘data’ storage items.

[0488] 4.7.2 Revision

[0489] A revision is an identifiable editorial milestone for a ‘data’storage item within the scope of a particular managed release. It is asnapshot in time, either static or reproducible, to which one canreturn.

[0490] Revisions are only defined and maintained for ‘data’ storageitems.

[0491] 4.7.3 Fragment

[0492] A fragment is an identifiable linear sub-sequence of the datacontent of a component, either static or reproducible, which can beprovided in cases where the full content is either too large in volumefor a particular application or not specifically relevant.

[0493] Fragments are only defined and maintained for ‘data’ storageitems.

[0494] 4.8 Inheritance of Metadata

[0495] Metadata defined at higher scopes is inherited by lower scopes.There are two simple rules governing the inheritance of metadata fromhigher scopes to lower scopes:

[0496] 1. All metadata properties defined in higher scopes are fullyvisible, applicable, and meaningful in all lower scopes, withoutexception.

[0497] 2. Any property defined in a lower scope completely overrides,hides, shadows, replaces any definition of the same property that mightexist in a higher scope.

[0498] Thus, all metadata properties defined for a media object areinherited by all instances of that object; and all metadata propertiesdefined for a media instance (or media object) are inherited by all ofits components.

[0499] MARS does not define the mechanisms, algorithms or otherprocedures for affecting the inheritance of metadata properties definedin higher scopes to operations performed in lower scopes. It is theresponsibility of the tools and processes to ensure that metadata isinherited properly and reliably.

[0500] 4.9 Versioning Model

[0501] MARS defines a simple, portable, and practical versioning modelusing only two levels of distinction, corresponding to the concepts of‘release’ and ‘revision’.

[0502] A release is a published version of a media instance which ismaintained and/or distributed in parallel to other releases. One couldview a release as a branch in common tree based versioning models. Arevision is a milestone in the editorial lifecycle of a given release;or a node on a branch.

[0503] In addition to release and revision, a particular coverage can bedefined and applied to a media instance to differentiate variant contentintended for a particular application and/or audience.

[0504] 5 Metadata Classification and Naming Conventions

[0505] 5.1 Property Name

[0506] All property names must be valid tokens (see formal specificationin section 5.2.1).

[0507] Furthermore, all property name tokens for a given environmentshare the same lexical scope.

[0508] The format for tokens was motivated by the desire to have anaming scheme which could be used consistently across a very broad scopeof encodings. This not only makes adoption and application of such astandard easier in a heterogeneous environment but also simplifies theconstruction of and interaction between common tools and processes.

[0509] Compatibility with a very broad set of encoding schemes allowsfor MARS metadata property names and token values to be used asvariables, symbols, names, tokens, identifiers, directories, filenames,etc. in the various encoding schemes, allowing for consistent semanticsboth for the metadata itself as well as for the systems, applicationsand models storing, operating on, describing, and/or referencing thatmetadata.

[0510] Encodings for which the token format is known to be compatibleinclude:

[0511] Programming/Scripting/Command Languages:

[0512] C, C++, Objective C, Java, Visual BASIC, Ada, Smalltalk, LISP,Emacs Lisp, Scheme, Prolog, JavaScript/ECMAScript, Perl, Python, TCL,Bourne Shell, C Shell, Z Shell, Bash, Korn Shell, POSIX, Win32, REXX,SQL.

[0513] Markup/Typesetting Languages:

[0514] SGML, XML, HTML, XHTML, DSSSL, CSS, PostScript, PDF.

[0515] File Systems:

[0516] FAT (MS-DOS), VFAT (Windows 95/98), NTFS (Windows NT/2000), HFS(Macintosh), HPFS (OS/2), HP/UX, UFS (Solaris), ext2 (Linux), ODS-2(VMS), NFS, ISO 9660 (CDROM), UDF (CDR/W, DVD).

[0517] It is likely that there exist many other encodings, in additionto those listed above, with which the MARS token format is compatible.

[0518] 5.2 Property Value Type

[0519] MARS defines a number of property value types which serve toconstrain the format and content of specific values. These data typingconstraints simplify the construction of software systems which operateon MARS metadata, and provide for more consistent and uniform usage.

[0520] The total length or magnitude of property values, or sets ofvalues, is only dependent on the storage limitations of the systems andtools operating on the metadata. MARS itself imposes no arbitraryrestrictions.

[0521] Specific environments, processes, systems, or applications mightrestrict the magnitude of one or more value types to satisfy storage,bandwidth, or other constraints. MARS property value types may beconstrained further (e.g. limiting Identity property token values to 30characters, or limiting integers to the range 0..9999) but may not berelaxed in any fashion (e.g. allowing tokens to have case distinction orinclude white space or colon characters, etc.). It is up to each systemand/or application to address the risk of data loss or corruption whenunable to support the magnitude of existing metadata property values.

[0522] Many property values are “Environment Dependent”. This means thatthey may be specific to a given system or LAN, or may be defined by anorganization, business unit, product line, etc. and thus not have globalsignificance—nor guaranteed to be globally unique if two previouslydisjunct environments are merged, where e.g. a token is used as thevalue for a given property in both environments, but with differentsemantics.

[0523] In the property specifications below, properties which may havevalues which are environment dependent are marked with an asterisk.

[0524] Although MARS defines only a core set of metadata properties, andone can extend MARS with additional properties and allowed values forcore MARS properties, it remains an important goal to maintain as muchuniformity and consistency between all applications of MARS, and everypossible effort should be made to publish and synchronize all MARSextended property sets; with the addition of new properties and valuesto the core standard where clearly justified by common usage.

[0525] 5.2.1 Token

[0526] Any sequence of characters beginning with a lowercase alphabeticcharacter followed by zero or more lowercase alphanumeric characterswith optional single intervening underscore characters. Morespecifically, any string matching the following POSIX regularexpression:

[0527] /[a-z](_?[a-z0-9])*/

[0528] Examples:

[0529] abcd

[0530] ab_cd

[0531] a123

[0532] x2_(—)3_(—)4_(—)5

[0533] here_is_a_very_long_token_value

[0534] Most MARS metadata properties are of type token, particularlythose which are controlled sets. In fact, a token value type can usuallybe considered synonymous with an explicit, bound, and typically ordinalset of values. The primary reasons for this are (1) informationmanagement processes based on controlled sets of explicitly definedvalues are more robust than those based on arbitrary values, and (2)that current and emerging tools and technologies for modeling, encoding,and processing structured information such as metadata provide specialfunctionality for defining, validating, and processing bounded sets oftoken like symbols, which are not available for arbitrary strings.

[0535] Furthermore, because MARS is intended for the management of verylarge documentation sets (millions or even billions of managed objects),practical considerations must be taken into account, and token valuesimpose far less demands on storage than arbitrary strings in mostcircumstances. Since presentation issues can be addressed separatelyfrom internal representations, more concise and efficient token valuescan be utilized. Longer, more user-friendly, and mnemonic labels may beassociated with each property name and token value, including differentlabels for various languages or other needs, which can be defined oncein a schema or similar specification and used wherever needed whenpresenting metadata information to a human being; without unnecessarilyburdening the systems storing, operating on, or beingdirected/controlled by that metadata. All defined token values must havean explicitly specified and fixed value for both ‘name’ (correspondingto the token itself) and a ‘label’ (used for presentation purposes).

[0536] 5.2.2 Integer

[0537] Any sequence of one or more decimal digit characters representinga signed integer value.

[0538] More specifically, any string matching the following POSIXregular expression:

[0539] /[\−\+]?[0-9]+/

[0540] Examples:

[0541] 12345

[0542] 0

[0543] −9590728691

[0544] 32

[0545] +32

[0546] 5.2.3 Count

[0547] Any sequence of one or more decimal digit characters representingan unsigned (non-negative) integer value. More specifically, any stringmatching the following POSIX regular expression:

[0548] /[0-9]+/

[0549] Examples:

[0550] 12345

[0551] 0

[0552] 9590728691

[0553] 32

[0554] 5.2.4 Decimal

[0555] Any floating point numerical value in simple decimal notation.More specifically, any string matching the following POSIX regularexpression:

[0556] /[\−\+]?[0-9]+\.[0-9]+/

[0557] Examples:

[0558] 12345.0

[0559] +0.02

[0560] 5.9590728691

[0561] −32.23.18 (74)

[0562] 5.2.5 Percentage

[0563] Any percentage value belonging to the integer value range from 0to 100.

[0564] More specifically, any string matching the following POSIXregular expression:

[0565] /(100)|([1-9][0-9])|([0-9])/

[0566] Examples:

[0567] 15

[0568] 3

[0569] 73

[0570] 100

[0571] Percentage values should not be prefixed or suffixed by a percent‘%’ sign.

[0572] 5.2.6 String

[0573] Any sequence of one or more Unicode character/glyph code points.The particular Unicode conformant encoding (e.g. UTF-8, UTF-16, etc.) issystem and application dependent and not specified explicitly by MARS.

[0574] 5.2.7 Date

[0575] A string conforming to ISO 8601 & W3C TR NOTE datetime-19980827,defining a complete date:

[0576] YYYY-MM-DD

[0577] where:

[0578] YYYY=four-digit year

[0579] MM=two-digit month (01=January, etc.) $\begin{matrix}{{DD} = \quad {{two}\text{-}{digit}\quad {day}\quad {of}\quad {month}\quad \left( {01\quad {through}\quad 31} \right)}} \\{-=\quad {{literal}\quad {separator}\quad ({hyphen})}}\end{matrix}$

[0580] Examples:

[0581] 1966-03-31

[0582] 2000-05-01

[0583] 2193-12-31

[0584] 5.2.8 Time

[0585] A string conforming to ISO 8601 & W3C TR NOTE datetime-19980827,defining a complete date plus hours, minutes, and seconds in UniversalCoordinated Time:

[0586] YYYY-MM-DDThh:mm:ssZ

[0587] where:

[0588] YYYY=four-digit year

[0589] MM=two-digit month (01 January, etc.)

[0590] DD=two-digit day of month (01 through 31)

[0591] T=literal separator indicating start of time component

[0592] hh=two digits of hour (00 through 23) (am/pm NOT allowed)

[0593] mm=two digits of minute (00 through 59)

[0594] ss=two digits of second (00 through 59) $\begin{matrix}{Z = \quad {{time}\quad {zone}\quad {designator}\quad {for}\quad {Universal}\quad {Coordinated}\quad {Time}\quad ({UTC})}} \\{-=\quad {{literal}\quad {separator}\quad ({hyphen})}} \\{\text{:} = \quad {{literal}\quad {separator}\quad ({colon})}}\end{matrix}$

[0595] Examples:

[0596] 1966-03-31 T05:11:23Z

[0597] 2000-05-01T22:54:08Z

[0598] 2193-12-31T23:59:59Z

[0599] 5.2.9 Ranking

[0600] A ranking value is a sequence of decimal separated integers. Morespecifically, any string matching the following POSIX regularexpression:

[0601] /[\−\+]?[0-9]+(\.[\−\+]?[0-9]+)*/

[0602] Examples:

[0603] 7

[0604] 3.11.4.7

[0605] −2.1.2.9

[0606] 2.−1.1

[0607] A ranking value defines a path in an ordered tree of nodes wherethe values for each dot delimited field specifies the sort order of thenode in the tree at that level of the path. The root node of the tree isnot defined explicitly. The first integer value thus defines the sortorder relating to the immediate children (level 1) of the implicit root,the next integer defines the sort order relating to the children of thelevel 1 node, etc. This defines a tree where the linear ordering ofnodes is derivable by a depth first ordered traversal of the tree. E.g.the token:ranking pairs foo:1, bar:2, bas:3, and boo:4 represent thefollowing tree:

[0608] (root)/

[0609] 1(foo)

[0610] 2(bar)

[0611] 3(bas)

[0612] 4(boo)

[0613] defining the ordered set:

[0614] foo<bar<bas<boo

[0615] We can insert a token ‘xxx’ between ‘foo’ and ‘bar’ with theranking ‘1.1’:

[0616] (root)/

[0617] 1(foo)/

[0618] 1(xxx)

[0619] 2(bar)

[0620] 3(bas)

[0621] 4(boo)

[0622] defining the ordered set:

[0623] foo < xxx < bar < bas < boo

[0624] and then insert another token ‘yyy’ between ‘foo’ and ‘xxx’ withthe ranking

[0625] ‘1.0’:

[0626] (root)/

[0627] 1(foo)/

[0628] 0(yyy)

[0629] 1(xxx)

[0630] 2(bar)

[0631] 3(bas)

[0632] 4(boo)

[0633] defining the ordered set:

[0634] foo<yyy<xxx<bar<bas<boo

[0635] Ranking values are used to define the order of ranked tokenvalues. It is not allowed for any two values defined for the sameproperty in a given environment to have an identical ranking (i.e. todefine the same path in the ordered tree of nodes).

[0636] It is expected that ranked token sets are seldom extended, andthat extensions would be defined at the highest specification levelpossible, with all rank values normalized to simple positive integervalues. Nevertheless, the ranking value model defined here allows forunlimited arbitrary insertion of new ranked token values into anyexisting sequence as needed.

[0637] 5.2.10 ID

[0638] A token which serves as a unique identifier for a particularproperty within a given environment. ID token values need not be uniqueacross all properties.

[0639] 5.2.11 Actor

[0640] A string which serves as a unique identifier for an actor withina given environment. An actor is either a person or a softwareapplication which operates on, or has special responsibility or interestin the data in question. The actor identifier method employed must besupported by the user authentication processes in use within eachparticular environment.

[0641] 5.2.12 Agency

[0642] A string comprising the URL prefix of the CGI interface to anMetia Framework agency, up to and including the question mark; typicallyused to define the media object Archive or other Metia Frameworkcompliant archive where particular data resides. E.g.

[0643] “http://docserv.nokia.com/GMA?”

[0644] 5.2.13 Content Type

[0645] A string containing a valid MIME Content Type. E.g.: “text/html”,“text/xml”, “image/gif”, “application/octet-stream”, etc.

[0646] 5.2.14 Character Set

[0647] A string containing a valid MIME Character Set identifier. E.g.“us-ascii”, “iso-8859-1”, “utf-8”, “utf-16”, “gb2312”, “iso-2022jp”,“shiftjis”, “euc-kr”, etc.

[0648] 5.2.15 Encoding

[0649] An encoding is a complex data type representing a set ofproperties identified by a unique token name. They representconfigurations of syntactic and semantic characteristics which aresignificant to the production or management of information in a givenenvironment.

[0650] Only values for properties defined as part of the Encoding Module(see section 6.6) may be defined for an encoding data type. Encodingsare the required data type for the ‘encoding’ property in the IdentityModule in section 6.1.5.

[0651] As with tokens, each encoding must have defined for it a ‘name’and a ‘label’. In addition, every encoding must have defined for it avalid MIME ‘content type’ value.

[0652] 5.2.15.1 Simple Encoding

[0653] A simple encoding is one which has defined values only for theEncoding properties ‘content type’ and (optionally) ‘character_set’ and‘suffix’. Simple encodings are roughly equivalent in resolution to MIMEencodings.

[0654] 5.2.15.2 Complex Encoding

[0655] A complex encoding is one which has defined values for at leastone other Encoding property other than those allowed in a simpleencoding, such as ‘schema’, ‘line_delimitation’, etc.

[0656] 5.2.16 Universal Resource Identifier (URI)

[0657] Any valid Universal Resource Identifier (URI).

[0658] This may be a URL (Uniform Resource Locator), a URN (UniformResource Name), or some other form of URI.

[0659] 5.2.17 Uniform Resource Locator (URL)

[0660] Any valid Uniform Resource Locator (URL).

[0661] A typical case is a URL referencing MARS classified data,consisting of a string containing the set of MARS metadata propertyname/value pairs formatted as a URL encoded string prefixed by the valueof the “archive” property. E.g.

[0662]“http://xml.nokia.com/GMA?action=retrieve&identifier=dn99278&...&...”

[0663] 5.2.18 Uniform Resource Name (URN)

[0664] Any valid Uniform Resource Name (URN).

[0665] 5.2.19 Media Resource Name (MRN)

[0666] Section 8 defines an explicit and compact URN syntax based onMARS Identity metadata properties for encoding the identity of any givenstorage item as a single string value.

[0667] 5.3 Property Value Count

[0668] 5.3.1 Single

[0669] A single value count means that there can be at most one valuefor a given property.

[0670] 5.3.2 Multiple

[0671] A multiple value count means that there can be one or more valuesfor a given property.

[0672] The order of multiple values may or may not be significant, butnevertheless must be preserved by any system or application storing,updating, accessing, or operating on the set of values.

[0673] When encoded within a single string or field, multiple non-stringvalues must be separated by one or more white space characters. In thecase of multiple string values, the individual string values must beseparated by line breaks. The line breaks are not included in any valuecontent, but all other white space is considered to be part of the valuein which it occurs. E.g.

[0674] “token1 token2 token3”

[0675] “2000-02-19

[0676] 2000-11-07”

[0677] “1234 56 7890”

[0678] “First string value.

[0679] Second string value.”.23 (74)

[0680] If a string value contains any line breaks, they must beimmediately preceded by a backslash ‘\’ character. The backslash is notincluded as part of the value content. E.g.

[0681] “Here is a string value\

[0682] with an embedded line break.”

[0683] User interfaces which expect single values for particular stringproperties may choose to map line breaks in user input to spaces ratherthan interpreting the input as a sequence of multiple string values.

[0684] 5.4 Property Value Range

[0685] For any given property, the set of allowed values for thatproperty may either be bounded or unbounded.

[0686] 5.4.1 Bounded

[0687] The set of allowed values for the given property is finite andexplicitly defined. Some property value ranges are bounded bydefinition, being based on or derived from fixed standards (e.g.language, coverage, format, etc.). Most properties with bounded valueranges are token types having a controlled set of allowed values.

[0688] 5.4.2 Unbounded

[0689] The set of allowed values for the given property is infinite,though perhaps otherwise constrained by format or other characteristicsas defined for the property value type.

[0690] 5.5 Property Value Ranking

[0691] For any given property, the set of allowed values for thatproperty may be ordered by an implicit or explicit ordinal ranking,either presumed by all applications operating on or referencing thosevalues or defined explicitly in the schema declaration of those values.

[0692] Some property value types are ranked implicitly due to their typeand subsequently the value ranges of all properties of such types areautomatically ranked (e.g. Integer, Count, Date, Time, etc.). Mostproperties with ranked value ranges are token types having a controlledset of allowed values which have a significant sequential ordering (e.g.status, release, milestone, etc.).

[0693] Ranking may either be strict or partial. With strict ranking, notwo values for a given property may share the same ranking. With partialranking, multiple values may share the same rank, or may be unspecifiedfor rank, having the implicit default rank of zero.

[0694] Ranked properties may only have single values. This is a specialconstraint which follows logically from the fact that ranking defines arelationship between objects having ranked values, and comparisonsbetween ranked values becomes potentially ambiguous if multiple valuesare allowed. E.g. if the values x, y, and z for property P have theranking 1, 2, and 3 respectively, and object ‘foo’ has the property P(y)and object ‘bar’ has the property P(x,z), then a boolean query such as“foo.P < bar.P?” cannot be resolved to a single boolean result, as y isboth less than z and greater than x, and thus the query is both true andfalse, depending on which value is chosen for bar.P (i.e.foo.P(y)<bar.P(x)=False, while foo.P(y)<bar.P(z)=True).

[0695] Ranking for all property types other than token are definedimplicitly by the data type, usually conforming to fundamentalmathematical or industry standard conventions.

[0696] Ranking for token property values are specified using Rankingvalues as defined in section 5.2.9.

[0697] 5.5.1 Strict

[0698] The set of allowed values for the given property corresponds to astrict ordering, and each value is associated with a unique rankingwithin that ordering.

[0699] 5.5.2 Partial

[0700] The set of allowed values for the given property corresponds to apartial ordering, and each value is associated with a ranking withinthat ordering, defaulting to zero if not otherwise specified.

[0701] 5.5.3 None

[0702] The set of allowed values for the given property corresponds to afree ordering, and any ranking specified for any value is disregarded.

[0703] 6 Metadata Properties

[0704] MARS is made up of sets of metadata properties grouped intomodules. Each module corresponds to a particular function or purposewhich the properties contained in that module share. Modules are anorganizational convenience and do not have any significance to any ofthe processes or applications operating on MARS compliant metadata.

[0705] Applications are not expected to know of, nor required to provideany behavior relating to modules. Note that modules do not representindividual namespaces or scopes; and thus no two modules may haveproperties with the same name.

[0706] MARS specifies a set of core properties which are common to allprocesses and tools operating within the Metia Framework, both fordocumentation production as well as distribution. Additional propertiescan be defined and used as required by particular processes or needs,and the methods used for defining, encoding, and validating metadatasupport flexible extensibility of the metadata vocabulary.

[0707] Nearly all properties are persistent, meaning that they areintended to be defined and stored in some explicit encoding. Someproperties, however, are not persistent, but are used only forcommunication between software components operating within the MetiaFramework.

[0708] In particular is the property ‘action’ which specifies whatoperation is to be performed by the agent receiving a particular MARSencoded query. In the sections that follow, metadata properties whosevalues may be environment dependent are marked with an asterisk ‘*’ andmetadata properties which may not always be persistent are marked with asection symbol ‘§’.

[0709] 6.1 Identity

[0710] The properties defined in the Identity module are the heart ofthe MARS metadata model.

[0711] As the module name implies, these properties are use to encodethe unique identity of data entities, both abstract and concrete. Theidentity properties are scoping, meaning that they define a hierarchy oflevels, corresponding to Media Object, Instance, Component, and Item(see FIG. 3).

[0712] The “identifier” property identifies an abstract media object.

[0713] The four properties “release”, “language”, “coverage”, and“encoding” together, along with the “identifier” property, identify anabstract media instance.

[0714] The “component” property, together with the higher scopedproperties, identifies an abstract media component.

[0715] The “item” property, together with the higher scoped properties,identifies a concrete storage item.

[0716] It is important to note that the Identity properties differ fromall other properties in that some value is required in order to fullyidentify any discrete body of data. Tools operating on MARS metadata arepermitted to presume that the specified default values are valid if noother value is provided.

[0717] Filenames, URLs, and other system specific means ofidentification are typically fragile, frequently non-portable, and donot necessarily follow any formal model or methodology, hamperinginteroperability between disparate systems. Using sets of standardmetadata properties such as those defined in the MARS Identity moduleprovides a platform, system, and process independent means of definingthe identity of documentation entities. It also allows systems tooperate on one or more levels of scope, such as media object orinstance, using user and/or environment information to resolve abstractreferences to physical data items.

[0718] Identity properties may only have Single values. This is aspecial constraint and follows logically from the fact that if multiplevalues are allowed, there is no way to ensure that the same values arealways used or that new values are not added, essentially changing theidentity of the data. To change an Identity value is to change thedata's identity. It is similar in effect to changing a filename in afile system.

[0719] 6.1.1 identifier *

[0720] The unique identifier of an abstract media object. Nameidentifier Label Media Object Identifier Type ID Count Single RangeUnbounded Ranking None Values Any valid ID value as defined by thisspecification.

[0721] 6.1.2 release *

[0722] The numeric, sequential identifier for a published version of amedia instance which is maintained and/or distributed in parallel toother releases. Name release Label Release Type Count Count Single RangeUnbounded Ranking Strict Values Any valid Count value as defined by thisspecification. Default 0

[0723] The date is the numeric, sequential identifier of theindependently managed release. Release values thus both differentiatebetween and also order different releases over time. A release withvalue ‘7’ is considered to contain more current information than arelease of the same media object with value ‘4’.

[0724] Release values may typically coincide with (synchronize to) majorversion branch numbers in a revision control system, corresponding toversion branches directly connected to the trunk; though this is not arequirement of MARS.

[0725] 6.1.3 language

[0726] The primary language in which the data is written. Name languageLabel Language Type Token Count Single Range Bounded Ranking None ValuesThe token value ‘none’, or any ISO 639 two-letter language code. Defaultnone

[0727] Because some graphics, photos, or other data may contain notextual information and are undefined with regards to language, thedefault language value is ‘none’.

[0728] See Appendix 9.1 for a complete listing of allowed ISO 639values.

[0729] 6.1.3.1 none

[0730] The data is unspecified for language (presumably because itcontains no textual content). Name none Label None

[0731] 6.1.4 coverage *

[0732] The geopolitical or application scope of the data, particularlyrelating to standards, policies, units of measure and other regionalaspects. Name coverage Label Coverage Type Token Count Single RangeBounded Ranking None Values One of: global, europe, north_americasouth_america, africa, middle_east asia_pacific, any ISO 3166-1two-letter country code, or any valid Token value as defined by thisspecification. Default global

[0733] All ISO 3166-1 codes must be entered in lowercase to comply withthe constraints of the MARS Token format. ISO 3166-1 itself does notspecify case as being significant, thus all lowercase encoded valuesused in MARS metadata are fully compliant with ISO 3166-1.

[0734] Custom token values for the coverage property, such as thosedefining the scope of a particular customer or application, may notsupersede the semantics of either the values defined by thisspecification nor the ISO 3166-1 country codes. I.e., it is notpermitted to define a custom value which has identical coverage to aMARS defined value, such as ‘world’ as a synonym for ‘global’ or‘france’ as a synonym for ‘fr’, etc. The creation of ad-hoc coveragescopes from existing defined scopes as a means of documenting currentapplication rather than overall relevance (e.g. ‘fr_ge’ for France plusGermany rather than ‘europe’) is highly discouraged. In generalpractice, one should use great constraint before defining a new coveragevalue.

[0735] See Appendix 9.2 for a complete listing of allowed ISO 3166-1values.

[0736] 6.1.4.1 global

[0737] Coverage is world-wide. Name global Label Global

[0738] 6.1.4.2 europe

[0739] Coverage applies only to Western, Northern, Southern, and EasternEurope. Name europe Label Europe

[0740] 6.1.4.3 north_america

[0741] Coverage applies only to the United States, Canada, and MexicoName north_america Label North America

[0742] 6.1.4.4 south_america

[0743] Coverage applies only to Central and South America, and theCaribbean. Name south_america Label South America

[0744] 6.1.4.5 africa

[0745] Coverage applies only to Africa. Name africa Label Africa

[0746] 6.1.4.6 middle_east

[0747] Coverage applies only to the Middle East. Name middle_east LabelMiddle East

[0748] 6.1.4.7 asia_pacific

[0749] Coverage applies only to Asia and the Pacific. Name asia_pacificLabel Asia-Pacific

[0750] 6.1.5 encoding *

[0751] The syntactic and semantic encoding of the data. Name encodingLabel Media Encoding Type Encoding Count Single Range Bounded RankingNone Values Either binary or any valid Encoding as defined by thisspecification.

[0752] Default binary

[0753] 6.1.5.1 binary

[0754] Data has literal binary encoding which is not expected to beparsed in any fashion. Name binary Label Literal Binary Encoding ContentType application/octet-stream Suffix bin

[0755] 6.1.6 component

[0756] The abstract component of a media object or media instance. Namecomponent Label Component Type Token Count Single Range Bounded RankingNone Values One of: data, meta, too, index, glossary; or other definedtoken value. Default data

[0757] Typically, components belong to a media instance, thoughcomponents can also be defined for an abstract media object itself,defining properties and other characteristics shared by all instances ofthat media object.

[0758] 6.1.6.1 data

[0759] Represents the data content component. Name data Label DataContent

[0760] 6.1.6.2 meta

[0761] Represents the metadata component. Name meta Label Metadata

[0762] 6.1.6.3 toc

[0763] Represents the table of contents component. Name toc Label Tableof Contents

[0764] 6.1.6.4 index

[0765] Represents the index component. Name index Label Index

[0766] 6.1.6.5 glossary

[0767] Represents the glossary component. Name glossary Label Glossary

[0768] 6.1.7 item *

[0769] The concrete, physical item belonging to a media component. Nameitem Label Item Type Token Count Single Range Bounded Ranking NoneValues One of: data, meta, idmap, or lock. Default data

[0770] Most item property values are significant only to the GeneralizedMedia Archive. In nearly all cases, end users will never specify norconcern themselves with item property values directly, but will interactprimarily with components.

[0771] 6.1.7.1 data

[0772] Contains the actual data content of the component. Name dataLabel Data Content

[0773] 6.1.7.2 meta

[0774] Management metadata for the data item of the same component. Namemeta Label Metadata

[0775] 6.1.7.3 idmap

[0776] Symbolic ID pointer to content fragment mapping table. Name idmapLabel ID Pointer to Fragment Map

[0777] This item is mandatory for each data item which has staticallypartitioned data containing internal cross reference targets and definesa mapping from each symbolic Xpointer reference to the number of thefragment containing that target (e.g. “#xyz” ? “?123”).

[0778] 6.1.7.4 lock

[0779] Marker preventing accidental collisions between concurrentmanagement systems or sessions. Name lock Label Modification Lock

[0780] The format and nature of the lock item is dependent on the GMAmanaging the component.

[0781] 6.2 Item Qualifier

[0782] 6.2.1 pointer*

[0783] A reference to a particular structural element or sequence ofelements within the data

[0784] content, encoded as an XPointer string. Typically a pointer to anelement ID value (e.g. “#EID38281”). Name pointer Label Content PointerType String Count Single Range Unbounded Ranking None Values Any validXPointer reference string.

[0785] 6.2.2 revision

[0786] The number of a particular editorial revision milestone for therelease. Name revision Label Editorial Revision Type Count Count SingleRange Unbounded Ranking Strict Values Any valid Count value as definedin this specification.

[0787] 6.2.3 fragment

[0788] The number of a specific, static, linear sub-sequence of the datacontent of the component. Name fragment Label Data Content Fragment TypeCount Count Single Range Unbounded Ranking Strict Values Any valid Countvalue as defined in this specification.

[0789] 6.3 Management

[0790] The properties defined within the Management module relate to thecontrol of processes operating on or directed by MARS metadata, such asretrieval, storage, change management (also referred to as versionmanagement), etc. It does not include metadata properties which might beneeded for other higher level management processes such as workflowmanagement, package/configuration management, or editorial processlifecycle management. Such processes can be built on top of thefunctionality provided by this and other modules.

[0791] 6.3.1 action §

[0792] The action or operation which a particular Metia Framework Agentis to perform. Name action Label Action Type Token Count Multiple RangeBounded Ranking None Values One of: store, retrieve, generate, remove,qualify, locate, lock, or unlock.

[0793] A software application must assume default values for unspecifiedIdentity properties as defined by this standard, and/or to apply valuesbased on user and/or environment configurations, in order to resolve anygiven query to a physical item.

[0794] Multiple actions can be specified at any given time, in whichcase they are to be applied in the order specified to the data resultingfrom any preceeding actions, or otherwise to the originally specifieddata.

[0795] This permits the convenient specification of compound actionssuch as ‘generate store’, ‘lock retrieve’, ‘store unlock’, or ‘locateremove’.

[0796] 6.3.1.1 store

[0797] Store a data stream, associating it with the item defined by theIdentity property values otherwise provided in the same query. Nameretrieve Label Retrieve Data

[0798] 6.3.1.2 retrieve

[0799] Retrieve the data stream associated with the item defined by theIdentity property values otherwise provided in the same query. Namestore Label Store Data

[0800] 6.3.1.3 generate

[0801] Generate a new data stream, possibly derived from an input datastream, associating it with the item defined by the Identity propertyvalues otherwise provided in the same query. Name generate LabelGenerate Data

[0802] 6.3.1.4 remove

[0803] Remove (delete/destroy) the data defined by the Identity propertyvalues otherwise provided in the same query. Name remove Label RemoveData

[0804] 6.3.1.5 qualify

[0805] Return a boolean value indicating the existence, validity, orother status of the data defined by the Identity property valuesotherwise provided in the same query. Name qualify Label Qualify Data

[0806] 6.3.1.6 locate

[0807] Return one or more complete item property value sets for allitems matching in some fashion the set of properties provided in thequery. Name locate Label Locate Data

[0808] 6.3.1.7 lock

[0809] Set the modification lock for the item defined by the Identityproperty values otherwise provided in the same query. Name lock LabelSet Modification Lock

[0810] 6.3.1.8 unlock

[0811] Release the modification lock for the item defined by theIdentity property values otherwise provided in the same query. Nameunlock Label Release Modification Lock

[0812] 6.3.2 agency *

[0813] The CGI URL prefix to the Metia Framework Agency where the dataresides; typically to a Generalized Media Archive. Name agency LabelAgency CGI URL Type Agency Count Single Range Unbounded Ranking NoneValues Any valid Agency value as defined by this specification.

[0814] 6.3.3 location *

[0815] A URL from which the data can be retrieved; typically acombination of the agency CGI prefix, the action ‘retrieve’, and theIdentity properties of the data. Name location Label Location Type URLCount Single Range Unbounded Ranking None Values Any valid URL value asdefined by this specification.

[0816] 6.3.4 size

[0817] The total number of bytes of data. Can be used as a simplechecksum for data transfers or other operations. Name size Label SizeType Count Count Single Range Unbounded Ranking Strict Values Any validCount value as defined by this specification.

[0818] 6.3.5 relevance §

[0819] The relevance of the data with regards to the ideal target of asearch query or similar form of comparison to other data. A value ofzero indicates no relevance. A value of 100 indicates full relevance ora “perfect match”. Name relevance Label Relevance Type Percentage CountSingle Range Bounded Ranking Strict Values Any valid Percentage value asdefined by this specification.

[0820] The relevance property is used almost exclusively as a transientvalue whenever a score or other proximity value must be specified inrelation to a search query or other similar operation. It is notintended to be stored persistently, as its meaning is highly contextualand typically valid only within the scope of the results from aparticular action by an agent.

[0821] 6.3.6 status

[0822] The general lifecycle status of the data; typically indicatingthe maturity of the content and controlling release to specificaudiences. Name status Label Status Type Token Count Single RangeBounded Ranking Strict Values One of: draft, approved, or expired.

[0823] 6.3.6.1 draft

[0824] The content either has not been created yet or is currently beingcreated or modified and is not likely to be fully valid for its intendedpurpose. Name draft Label Draft Rank 1

[0825] 6.3.6.2 approved

[0826] The content has been verified as correct and valid for itsintended purpose. Name approved Label Approved Rank 2

[0827] 6.3.6.3 expired

[0828] The content is no longer valid for its intended purpose and/or isno longer maintained. Name expired Label Expired Rank 3

[0829] 6.3.7 access*

[0830] Corresponds to one or more user and/or group identifiersspecifying users having rights to modify content. Name access LabelAccess Type String Count Multiple Range Unbounded Ranking None ValuesAny valid String value as defined by this specification, and whichconforms to the access control mechanisms in use in the givenenvironment.

[0831] 6.3.8 revision *

[0832] The sequential editorial milestone identifier for a particularrevision of the data item of a media component, incremented with eachstore action following modifications to the data content. Name revisionLabel Revision Type Count Count Single Range Unbounded Ranking StrictValues Any valid Count value as defined by this specification.

[0833] 6.3.9 comment §

[0834] A note or comment documenting an operation performed on the data(e.g. the change note for a given modification). Name comment LabelComment Type String Count Single Range Unbounded Ranking None Values Anyvalid String value as defined by this specification.

[0835] 6.3.10 tool *

[0836] A full description of the name and version of the tool used tocreate or last modify the data. Name tool Label Tool Description TypeString Count Single Range Unbounded Ranking None Values Any valid Stringvalue as defined by this specification.

[0837] 6.3.11 created

[0838] The time when the data was first created. Name created Label TimeCreated Type Time Count Single Range Unbounded Ranking Strict Values Anyvalid Time value as defined by this specification.

[0839] 6.3.12 locked

[0840] The time when the data was locked. Name locked Label Time LockedType Time Count Single Range Unbounded Ranking Strict Values Any validTime value as defined by this specification.

[0841] 6.3.13 modified

[0842] The time when the data was last modified. Name modified LabelTime Last Modified Type Time Count Single Range Unbounded Ranking StrictValues Any valid Time value as defined by this specification.

[0843] 6.3.14 approved

[0844] The time when the data was approved. Name approved Label TimeApproved Type Time Count Single Range Unbounded Ranking Strict ValuesAny valid Time value as defined by this specification.

[0845] 6.3.15 reviewed

[0846] The time when the data was last reviewed. Name reviewed LabelTime Last Reviewed Type Time Count Single Range Unbounded Ranking StrictValues Any valid Time value as defined by this specification.

[0847] 6.3.16 validated

[0848] The time when the data was last validated. Name validated LabelTime Last Validated Type Time Count Single Range Unbounded RankingStrict Values Any valid Time value as defined by this specification.

[0849] 6.3.17 start_pov

[0850] The date after which the content is valid. Name start_pov LabelStart of Period of Validity Type Date Count Single Range UnboundedRanking Strict Values Any valid Date value as defined by thisspecification.

[0851] 6.3.18 end_pov

[0852] The date up to which the content is valid. Name end_pov Label Endof Period of Validity Type Date Count Single Range Unbounded RankingStrict Values Any valid Date value as defined by this specification.

[0853] 6.3.19 expiration

[0854] The date after which the data no longer need be stored or managedand can be discarded (after optional archival). Name expiration LabelExpiration Date Type Date Count Single Range Unbounded Ranking StrictValues Any valid Date value as defined by this specification.

[0855] 6.3.20 mrn §

[0856] A Media Resource Name (MRN) derived from the set of Identity andQualifier properties as defined by this specification. Name mrn LabelMedia Resource Name Type MRN Count Single Range Unbounded Ranking NoneValues Any valid MRN value as defined in this specification.

[0857] Values for the ‘mrn’ property are typically not stored staticallywith the property set of a given object or instance, but are aconvenience mechanism used by particular Metia Framework agents forinternally defining and referencing storage items via single stringindex keys.

[0858] If an MRN value is stored in any fashion by any Agency, it is theresponsibility of that Agency to maintain absolute synchronizationbetween the MRN value and all of its component values from which the MRNis derived.

[0859] 6.4 Affiliation

[0860] Affiliation properties define the organizational environment orscope where data is created and maintained.

[0861] 6.4.1 function

[0862] The business function primarily responsible for the creation,validation, and maintenance of the data content. Name function LabelBusiness Function Type Token Count Single Range Bounded Ranking NoneValues One of: management, finance, sales, marketing,research_and_development, human_resources, legal,intellectual_property_rights, purchasing, sourcing, production,manufacturing_technology, quality, information_management, logistics,customer_service, or business_administration, or business_management.

[0863] 6.4.1.1 finance Name finance Label Finance

[0864] 6.4.1.2 sales Name sales Label Sales

[0865] 6.4.1.3 marketing Name marketing Label Marketing

[0866] 6.4.1.4 research_and_development Name research_and_developmentLabel Research and Development

[0867] 6.4.1.5 human_resources Name human_resources Label HumanResources

[0868] 6.4.1.6 legal Name legal Label Legal

[0869] 6.4.1.7 intellectual_property_rights Nameintellectual_property_rights Label Intellectual Property Rights

[0870] 6.4.1.8 purchasing Name purchasing Label Purchasing

[0871] 6.4.1.9 sourcing Name sourcing Label Sourcing

[0872] 6.4.1.10 production Name production Label Production

[0873] 6.4.1.11 manufacturing_technology Name manufacturing_technologyLabel Manufacturing Technology

[0874] 6.4.1.12 quality Name quality Label Quality

[0875] 6.4.1.13 information_management Name information_management LabelInformation Management

[0876] 6.4.1.14 logistics Name logistics Label Logistics

[0877] 6.4.1.15 customer_service Name customer_service Label CustomerService

[0878] 6.4.1.16 business_administration Name business_administrationLabel Business Administration

[0879] 6.4.2 organization *

[0880] The top-level organization to which the data belongs. Nameorganization Label Organization Type Token Count Single Range BoundedRanking None Values Any valid Token value as defined by thisspecification.

[0881] 6.4.3 business_unit *

[0882] The business unit to which the data belongs. Name business_unitLabel Business Unit Type Token Count Multiple Range Bounded Ranking NoneValues Any valid Token value as defined by this specification. Thevalues for this property must be defined separately by each individualorganization for all business units within that organization.

[0883] 6.4.4 product_family *

[0884] The product family to which the data belongs. Name product_familyLabel Product Family Type Token Count Multiple Range Bounded RankingNone Values Any valid Token value as defined by this specification. Thevalues for this property must be defined separately by each individualorganization or business unit for all product families within thatorganization and/or business unit.

[0885] 6.4.5 product*

[0886] The product to which the data belongs. Name product Label ProductType Token Count Multiple Range Bounded Ranking None Values Any validToken value as defined by this specification. The values for thisproperty must be defined separately by each individual organization,business unit, or product line for all products within thatorganization, business unit, and/or product line.

[0887] 6.4.6 product_release *

[0888] The product release to which the data belongs. Name productrelease Label Product Release Type Token Count Multiple Range BoundedRanking Strict Values Any valid Token value as defined by thisspecification. The values for this property must be defined separatelyby each individual organization, business unit, or product line for allproduct releases within a given product.

[0889] 6.4.7 project *

[0890] The project to which the data belongs. Name project Label ProjectType Token Count Multiple Range Bounded Ranking None Values Any validToken value as defined by this specification. The values for thisproperty must be defined separately by each individual organization,business unit, or product line for all projects within thatorganization, business unit, and/or product line.

[0891] 6.4.8 process *

[0892] The process to which the data belongs. Name process Label ProcessType Token Count Multiple Range Bounded Ranking None Values Any validToken value as defined by this specification. The values for thisproperty must be defined separately by each individual organization,business unit, or product line for all processes within thatorganization, business unit, and/or product line.

[0893] The values for this property must be defined separately by eachindividual organization, business unit, or product line for allprocesses within that organization, business unit, and/or product line.

[0894] 6.4.9 milestone *

[0895] A symbolic milestone with which the data is associated. Namemilestone Label Milestone Type Token Count Multiple Range BoundedRanking Strict Values Any valid Token value as defined by thisspecification. The values for this property must be defined separatelyby each individual organization, business unit, or product line for allprocesses within that organization, business unit, and/or product line.

[0896] 6.5 Content

[0897] Content properties define characteristics about data, oftenirrespective of its production, application, or realization.

[0898] 6.5.1 publisher

[0899] The entity responsible for making the data available. Typicallythe organization owning the data. Name publisher Label Publisher TypeString Count Single Range Unbounded Ranking None Values Any valid Stringvalue as defined by this specification.

[0900] 6.5.2 rights

[0901] Information about rights held in and over the data. Typically acopyright notice. Name rights Label Rights Type String Count SingleRange Unbounded Ranking None Values Any valid String value as defined bythis specification.

[0902] 6.5.3 confidentiality

[0903] The level of permitted access to the data. Name confidentialityLabel Confidentiality Type Token Count Single Range Bounded RankingStrict Values One of: public, company, confidential, or secret.

[0904] 6.5.3.1 public

[0905] Access to the data is unrestricted. Name public Label Public Rank1

[0906] 6.5.3.2 company

[0907] Access to the data is restricted to company personnel. Namecompany Label Company Confidential Rank 2

[0908] 6.5.3.3 confidential

[0909] Access to the data is restricted to those who are entitled byvirtue of their duties. Name confidential Label Confidential Rank 3

[0910] 6.5.3.4 secret

[0911] Access to the data is restricted to the owner and to individualsnamed by the owner. Name secret Label Secret Rank 4

[0912] 6.5.4 title

[0913] The name given to the data, usually by the creator. Name titleLabel Title Type String Count Single Range Unbounded Ranking None ValuesAny valid String value as defined by this specification.

[0914] 6.5.5 description

[0915] A textual description of the data content. Name description LabelDescription Type String Count Single Range Unbounded Ranking None ValuesAny valid String value as defined by this specification.

[0916] 6.5.6 type

[0917] The content type represented by the data. Name type Label ContentType Type Token Count Single Range Bounded Ranking None Values One of:general, product, project, process, management, or business.

[0918] 6.5.6.1 general

[0919] Content is used for general purposes. Name general Label GeneralContent

[0920] 6.5.6.2 product

[0921] Content is used for product related purposes. Name product LabelProduct Related Content

[0922] 6.5.6.3 project

[0923] Content is used for project related purposes. Name project LabelProject Related Content

[0924] 6.5.6.4 process

[0925] Content is used for process related purposes. Name process LabelProcess Related Content

[0926] 6.5.6.5 management

[0927] Content is used for management related purposes. Name managementLabel Management Related Content

[0928] 6.5.6.6 business

[0929] Content is used for business related purposes. Name businessLabel Business Related Content

[0930] 6.5.7 class *

[0931] One or more topical, scope, typing, application, or otherclassificatory identifiers. Name class Label Classification Type TokenCount Multiple Range Bounded Ranking None Values Any valid Token valueas defined by this specification. The values for this property must bedefined separately by each individual organization, business unit, orproduct line in accordance with their classification needs.

[0932] 6.5.8 keywords *

[0933] One or more keywords (or terms or phrases) used to classify thegeneral content of the data. Name keywords Label Keywords Type StringCount Multiple Range Unbounded Ranking None Values Any valid Stringvalue as defined by this specification. This property is intended to beused when the values defined for the ‘class’ property are not fullysufficient for the classification needed or when classification must bebased on identifiers which are not valid Tokens. Care should be taken toensure that it is not used in lieu of the ‘class’ property when thelatter property offers one or more suitable values.

[0934] 6.6 Encoding

[0935] Encoding properties define special qualities relating to theformat, structure, or general serialization of data streams which aresignificant to tools and processes operating on that data.

[0936] 6.6.1 content_type *

[0937] The MIME content type of the data. Name content_type Label MIMEContent Type Type String Count Single Range Bounded Ranking None ValuesAny valid MIME content type value. Default “application/octet-stream”The default MIME content type value corresponds to an otherwiseunspecified stream of binary data, and coincides with the default valuesfor the ‘encoding’ and ‘suffix’ properties. See Appendix 9.3 for alisting of the most commonly used MIME content type values.

[0938] 6.6.2 suffix *

[0939] The filename suffix associated with a particular encoding. Namesuffix Label Filename Suffix Type String Count Single Range UnboundedRanking None Values Any valid String value as defined in thisspecification. Default “bin” The default suffix value corresponds to anotherwise unspecified stream of binary data, and coincides with thedefault values for the ‘encoding’ and ‘mime’ properties.

[0940] 6.6.3 schema *

[0941] The identifier for a DTD, XML Schema, or other like mechanismdefining the syntactic/structural model of the data (if any). Nameschema Label Schema Type String Count Single Range Unbounded RankingNone Values Any valid String value as defined by this specification. Thestructure and interpretation of schema string values is environment andsystem dependent.

[0942] 6.6.4 aspect *

[0943] Selection criteria for inclusion of the data within a givencontext, process, scope, or other conditional application. Name aspectLabel Aspect Type String Count Single Range Unbounded Ranking NoneValues Any valid String value as defined by this specification. Aspectvalues are typically defined within structured document instances andseldom stored as persistent metadata externally.

[0944] 6.6.5 character_set

[0945] The MIME character set identifier for the primary or basecharacter set in which textual content is encoded. Name character_setLabel MIME Character Set Type String Count Single Range Bounded RankingNone Values Any valid MIME character set identifier.

[0946] 6.6.6 line_delimiter

[0947] The line delimiter character or character sequence for textualcontent. Name line_delimiter Label Line Delimiter Type Token CountSingle Range Bounded Ranking None Values One of lf, cr, crlf, or anyvalid Token value as defined by this specification.

[0948] 6.6.6.1 If

[0949] Lines of content are delimited by line feed (If) characters (alsocalled newline characters).

[0950] This is the line delimitation method for Unix, Linux, WindowsNT/2000, and most POSIX compliant operating systems. Name lf Label LineFeed

[0951] 6.6.6.2 cr

[0952] Lines of content are delimited by carriage return (cr)characters. This is the line delimitation method for the Macintoshoperating system. Name cr Label Carriage Return

[0953] 6.6.6.3 crlf

[0954] Lines of content are delimited by an ordered adjacent pair ofcarriage return and line feed characters. This is the method for MS-DOSand Windows 95/98 operating systems. Name crlf Label Carriage Return +Line Feed

[0955] 6.6.7 width_in_millimeters

[0956] Absolute width dimension in millimeters. Namewidth_in_millimeters Label Width in Millimeters Type Count Count SingleRange Unbounded Ranking Strict Values Any valid Count value as definedby this specification.

[0957] 6.6.8 height_in_millimeters

[0958] Absolute height dimension in millimeters. Nameheight_in_millimeters Label Height in Millimeters Type Count CountSingle Range Unbounded Ranking Strict Values Any valid Count value asdefined by this specification.

[0959] 6.6.9 width_in_pixels

[0960] Absolute width dimension in pixels. Name width_in_pixels LabelWidth in Pixels Type Count Count Single Range Unbounded Ranking StrictValues Any valid Count value as defined by this specification.

[0961] 6.6.10 height_in_pixels

[0962] Absolute height dimension in pixels. Name height_in_pixels LabelHeight in Pixels Type Count Count Single Range Unbounded Ranking StrictValues Any valid Count value as defined by this specification.

[0963] 6.6.11 resolution

[0964] Resolution of an image or the desired rendering resolution indots per inch (dpi) for graphical data encodings. Name resolution LabelResolution (dpi) Type Count Count Single Range Unbounded Ranking StrictValues Any valid Count value as defined by this specification.

[0965] 6.6.12 compression

[0966] The method used for compression of graphical data encodings. Namecompression Label Compression Type Token Count Single Range BoundedRanking None Values Any valid Token value as defined by thisspecification.

[0967] 6.6.13 color_depth

[0968] The total number of bits per pixel (bpp) used to encodeindividually displayable colors in graphical data encodings. Namecolor_depth Label Color Depth (bpp) Type Count Count Single RangeUnbounded Ranking Strict Values Any valid Count value as defined by thisspecification.

[0969] 6.6.14 color_space

[0970] The color space (model) used for graphical data encodings. Namecolor_space Label Color Space Type Token Count Single Range UnboundedRanking None Values One of rgb, rgba, cmyk, hsl; or any valid Tokenvalue as defined by this specification.

[0971] 6.6.14.1 rgb

[0972] Red/Green/Blue (RGB). Name rgb Label Red/Green/Blue (RGB)

[0973] 6.6.14.2 rgba

[0974] Red/Green/Blue/Alpha (RGBA). Name rgba Label Red/Green/Blue/Alpha(RGBA)

[0975] 6.6.14.3 cmyk

[0976] Cyan/Magenta/Yellow/blacK (CMYK). Name cmyk LabelCyan/Magenta/Yellow/blacK (CMYK).

[0977] 6.6.14.4 hsl

[0978] Hue/Saturation/Lightness (HSL). Name hsl LabelHue/Saturation/Lightness (HSL)

[0979] 6.7 Association

[0980] Association properties define special relationships relating tothe origin, scope, and/or focus of the content in reference to otherdata. Values may be any valid URI, though it is recommended thatwherever possible, MRNs be used.

[0981] 6.7.1 source *

[0982] Resource(s) from which the data is derived. Name source LabelSource Type URI Count Multiple Range Unbounded Ranking None Values Anyvalid URI value as defined by this specification.

[0983] 6.7.2 refers *

[0984] Resource(s) to which the data refers. Name refers Label Refers ToType URI Count Multiple Range Unbounded Ranking None Values Any validURI value as defined by this specification.

[0985] 6.7.3 supersedes *

[0986] Resource(s) which the data supersedes or replaces. Namesupersedes Label Supersedes Type URI Count Multiple Range UnboundedRanking None Values Any valid URI value as defined by thisspecification.

[0987] 6.7.4 summarizes *

[0988] Resource(s) which the data summarizes. Name summarizes LabelSummarizes Type URI Count Multiple Range Unbounded Ranking None ValuesAny valid URI value as defined by this specification.

[0989] 6.7.5 expands *

[0990] Resource(s) which the data expands. Name expands Label ExpandsType URI Count Multiple Range Unbounded Ranking None Values Any validURI value as defined by this specification.

[0991] 6.7.6 includes §*

[0992] Resource(s) which are included as partial content for the data asa whole. Name includes Label Includes Type URI Count Multiple RangeUnbounded Ranking None Values Any valid URI value as defined by thisspecification.

[0993] 6.8 Role

[0994] Role properties specify one or more actors who have a specialrelationship with the data. An actor is usually a person, but can alsobe a software application.

[0995] 6.8.1 user §*

[0996] Identifier of actor performing operation on or currently havingmodification rights to data. Name user Label User Type Actor CountSingle Range Unbounded Ranking None Values Any valid Actor value asdefined by this specification.

[0997] 6.8.2 creator *

[0998] Identifier of actor who created the original data. Name creatorLabel Creator Type Actor Count Single Range Unbounded Ranking NoneValues Any valid Actor value as defined by this specification.

[0999] 6.8.3 owner *

[1000] Identifier of actor who has primary rights and responsibilitiesfor the data. Name owner Label Owner Type Actor Count Single RangeUnbounded Ranking None Values Any valid Actor value as defined by thisspecification.

[1001] 6.8.4 modifier *

[1002] Identifier of actor who last modified the data. Name modifierLabel Modifier Type Actor Count Single Range Unbounded Ranking NoneValues Any valid Actor value as defined by this specification.

[1003] 6.8.5 approver *

[1004] Identifier(s) of actor(s) responsible for the quality andcorrectness of the data. Name approver Label Approver Type Actor CountMultiple Range Unbounded Ranking None Values Any valid Actor value asdefined by this specification.

[1005] 6.8.6 contributor *

[1006] Identifier(s) of actor(s) having contributed to the data. Namecontributor Label Contributor Type Actor Count Multiple Range UnboundedRanking None Values Any valid Actor value as defined by thisspecification.

[1007] 6.8.7 reviewer *

[1008] Identifier(s) of actor(s) responsible for evaluating the qualityand correctness of the data. Name reviewer Label Reviewer Type ActorCount Multiple Range Unbounded Ranking None Values Any valid Actor valueas defined by this specification.

[1009] 6.8.8 distribution *

[1010] Identifier(s) of actor(s) having a key interest in the data andare typically notified in some fashion regarding changes in the contentor status of the data. Name distribution Label Distribution Type ActorCount Multiple Range Unbounded Ranking None Values Any valid Actor valueas defined by this specification.

[1011] 7 Serialization and Validation

[1012] Because MARS is strictly a metadata specification framework andvocabulary, there is no required method for encoding MARS metadataproperty values or rules governing their validity. However, theGeneralized Media Archive (GMA) specification defines a serializationfor MARS property value sets based on XML which is suitable for bothdata interchange as well as persistent storage, and provides a DTD andother mechanisms for validation and processing.

[1013] 8 MRN (Media Resource Name) Syntax

[1014] This specification defines a URN syntax for MARS item referenceswhich is made up of the ordered concatenation of Identity properties,and optionally Item Qualifier properties, separated by colons. Theordered sequence is identifier, release, language, coverage, encoding,component, item, [revision, fragment, pointer].

[1015] All MRNs share the common fixed prefix ‘urn:mars:’ in accordancewith RFC 2141.

[1016] Note that the case of this prefix is not significant, but thecase of the remainder of the URN is significant. I.e., ‘URN:MARS:’,‘urn:mars:’, and ‘UrN:MaRs:’ are all equivalent.

[1017] It is recommended, however, that the prefix be all in lowercase,as shown in the examples, for the sake of consistent readability acrosssystems and environments.

[1018] There are two forms of MRN: (1) media instance component items(the typical case), and (2) media object component items (for inheritedor defining information).

[1019] In addition, either form of MRN may be qualified for revision,fragment, and/or pointer.

[1020] MRNs provide an explicit, concise, unique, consistent, andinformation rich identity string value in cases where such a singleidentity string is needed. MRNs identify only storage items, and nothigher level abstract entities such as components, instances or objects.Note though, that the Metia Framework Java API provides for the notionof an MRN pattern, which can be employed to represent metadata-relatedsets of items defined by valid MRNs.

[1021] 8.1 Media Instance Component Item MRN

[1022] A media instance component item MRN is required to have validproperty values for every Identity property. E.g.:

[1023] “urn:mars:dn823942931891:2:en:global:xhtml:meta:data”

[1024] “urn:mars:dn823942931891:2:fi:fi:neutral_mu:toc:data”

[1025] “urn:mars:tan82819:0:none:global:cgm_(—)2:data:data”

[1026] “urn:mars:x928bks212_u:11:ch:asia:word:data:meta”

[1027] 8.2 Media Object Component Item MRN

[1028] Media object component item MRNs all share the same fixedsub-sequence ‘:*:*:*:*:’ between the identifier and component propertyvalues, and are required to have valid property values for everyidentifier, component and item property. E.g.:

[1029] “urn:mars:dn823942931891:*:*:*:*:meta:data”

[1030] “urn:mars:dn823942931891:*:*:*:*:toc:data”

[1031] urn:mars:tan82819:*:*:*:*:data:data”

[1032] The sequence ‘:*:*:*:*:’ signifies that the defined items haveglobal scope over all instances, regardless of release, language,coverage, or encoding. Note that MARS does not define how globalinformation that is defined for media objects is to be applied toinstances, nor which components may be defined for any given mediaobject, nor their interpretation. MARS simply defines how those storageitems are named and organized using MARS metadata properties. In atypical environment, the only components defined for media objects wouldbe a meta component for global metadata shared by all instances andpossibly a data component containing a template or general document orabstract defining the content and/or structure shared by all instances.

[1033] 8.3 Qualified MRN

[1034] A qualified MRN has three additional fields suffixed to anunqualified MRN, corresponding to the property values for revision,fragment, and pointer; in that order. If any Qualifier property isundefined, its field must contain an asterisk ‘*’. All three fields aremandatory.

[1035] E.g.:

[1036] “urn:mars:tan82819:0:none:global:cgm_(—)2:data:data:3:*:*”

[1037] “urn:mars:x928bks212_u:11:ch:asia:word:data:meta:*:234:*”

[1038] “urn:mars:dn823942931891:*:*:*:*:data:data:*:*:#EID2z821 ”

[1039] Combinations of values for both revision and fragment may only bemeaningful if the revision number corresponds to the latest revision (inwhich case the revision number is superfluous) or if the fragment can bereliably regenerated based solely on the fragment number, as it isexpected that static fragments are typically maintained only for thelatest revision.

[1040] 9 Appendices

[1041] 9.1 Language Property Values

[1042] The following table lists all allowed token values for the“language” property, along with their presentation labels, as defined inISO 639. Name Label Name Label Aa Afar lv Latvian Lettish Ab Abkhazianmg Malagasy Af Afrikaans mi Maori Am Amharic mk Macedonian Ar Arabic mlMalayalam As Assamese mn Mongolian Ay Aymara mo Moldavian Az Azerbaijanimr Marathi Ba Bashkir ms Malay Be Byelorussian mt Maltese Bg Bulgarianmy Burmese Bh Bihari na Nauru bi Bislama ne Nepali bn Bengali; Bangla nlDutch bo Tibetan no Norwegian br Breton oc Occitan ca Catalan om (Afan)Oromo co Corsican or Oriya Cs Czech pa Punjabi cy Welsh pl Polish daDanish ps Pashto, Pushto de German pt Portuguese dz Bhutani qu Quechuael Greek rm Rhaeto-Romance en English rn Kirundi eo Esperanto roRomanian es Spanish ru Russian et Estonian rw Kinyarwanda eu Basque saSanskrit fa Persian sd Sindhi fi Finnish sg Sangro fj Fiji shSerbo-Croatian fo Faeroese si Singhalese fr French sk Slovak fy Frisiansl Slovenian ga Irish sm Samoan gd ScotsGaelic sn Shona gl Galician soSomali gn Guarani sq Albanian Gu Gujarati sr Serbian Ha Hausa ss Siswatihi Hindi st Sesotho hr Croatian su Sundanese hu Hungarian sv Swedish hyArmenian sw Swahili ia Interlingua ta Tamil ie Interlingue te Tegulu ikInupiak tg Tajik in Indonesian th Thai is celandic ti Tigrinya itItalian tk Turkmen iw Hebrew ti Tagalog ja Japanese tn Setswana jiYiddish to Tonga jw Javanese tr Turkish ka Georgian ts Tsonga kk Kazakhtt Tatar kl Greenlandic tw Twi km Cambodian uk Ukrainian kn Kannada urUrdu ko Korean uz Uzbek ks Kashmiri vi Vietnamese ku Kurdish vo Volapukky Kirghiz wo Wolof la Latin xh Xhosa ln Lingala yo Yoruba lo Laothianzh Chinese lt Lithuanian zu Zulu

[1043] 9.2 Coverage Property Values

[1044] The following table lists the allowed token values for the“coverage” property, adopted from

[1045] ISO 3166-1, along with their presentation labels. Name Label NameLabel Ad Andorra lc Saint Lucia Ae United Arab Emirates li Liechtensteinaf Afghanistan lk Sri Lanka ag Antigua and Barbuda lr Liberia aiAnguilla ls Lesotho al Albania lt Lithuania am Armenia lu Luxembourg anNetherlands Antilles lv Latvia ao Angola ly Libya aq Antarctica maMorocco ar Argentina mc Monaco as American Samoa md Moldavia at Austriamg Madagascar au Australia mh Marshall Islands aw Aruba mk Macedonia azAzerbaidjan ml Mali ba Bosnia-Herzegovina mm Myanmar bb Barbados mnMongolia bd Bangladesh mo Macau be Belgium mp Northern Mariana Islandsbf Burkina Faso mq Martinique (French) bg Bulgaria mr Mauritania bhBahrain ms Montserrat bi Burundi mt Malta bj Benin mu Mauritius bmBermuda mv Maldives bn Brunei Darussalam mw Malawi bo Bolivia mx Mexicobr Brazil my Malaysia bs Bahamas mz Mozambique bt Bhutan na Namibia bvBouvet Island nc New Caledonia (French) bw Botswana ne Niger by Belarusnet Network bz Belize nf Norfolk Island ca Canada ng Nigeria cc Cocos(Keeling) Islands ni Nicaragua cf Central African Republic nlNetherlands cg Congo no Norway ch Switzerland np Nepal ci Ivory Coast(Cote D'Ivoire) nr Nauru ck Cook Islands nt Neutral Zone cl Chile nuNiue cm Cameroon nz New Zealand cn China om Oman co Colombia pa Panamacr Costa Rica pe Peru cs Former Czechoslovakia pf Polynesia (French) cuCuba pg Papua New Guinea cv Cape Verde ph Philippines cx ChristmasIsland pk Pakistan cy Cyprus pl Poland cz Czech Republic pm Saint Pierreand Miquelon de Germany pn Pitcairn Island dj Djibouti pr Puerto Rico dkDenmark pt Portugal dm Dominica pw Palau do Dominican Republic pyParaguay dz Algeria qa Qatar ec Ecuador re Reunion (French) ee Estoniaro Romania eg Egypt ru Russian Federation eh Western Sahara rw Rwanda erEritrea sa Saudi Arabia es Spain sb Solomon Islands et Ethiopia scSeychelles fi Finland sd Sudan fj Fiji se Sweden fk Falkland Islands sgSingapore fm Micronesia sh Saint Helena fo Faroe Islands si Slovenia frFrance sj Svalbard and Jan Mayen Islands fx France (European Territory)sk Slovak Republic ga Gabon sl Sierra Leone gb Great Britain sm SanMarino gd Grenada sn Senegal ge Georgia so Somalia gf French Guyana srSuriname gh Ghana st Saint Tome (Sao Tome) and Principe gi Gibraltar suFormer USSR gl Greenland sv El Salvador gm Gambia sy Syria gn Guinea szSwaziland gp Guadeloupe (French) tc Turks and Caicos Islands gqEquatorial Guinea td Chad gr Greece tf French Southern Territories gs S.Georgia & S. Sandwich Isls tg Togo gt Guatemala th Thailand gu Guam(USA) tj Tadjikistan gw Guinea Bissau tk Tokelau gy Guyana tmTurkmenistan hk Hong Kong tn Tunisia hm Heard and McDonald Islands toTonga hn Honduras tp East Timor hr Croatia tr Turkey ht Haiti ttTrinidad and Tobago hu Hungary tv Tuvalu id Indonesia tw Taiwan ieIreland tz Tanzania il Israel ua Ukraine in India ug Uganda io BritishIndian Ocean Territory uk United Kingdom iq Iraq um USA Minor OutlyingIslands ir Iran us United States is Iceland uy Uruguay it Italy uzUzbekistan jm Jamaica va Vatican City State jo Jordan vc Saint Vincent &Grenadines jp Japan ve Venezuela ke Kenya vg Virgin Islands (British) kgKyrgyzstan vi Virgin Islands (USA) kh Cambodia vn Vietnam ki Kiribati vuVanuatu km Comoros wf Wallis and Futuna Islands kn Saint Kitts & NevisAnguilla ws Samoa kp North Korea ye Yemen kr South Korea yt Mayotte kwKuwait yu Yugoslavia ky Cayman Islands za South Africa kz Kazakhstan zmZambia la Laos zr Zaire lb Lebanon zw Zimbabwe

[1046] 9.3 MIME Derived Property Values

[1047] The following are the most commonly used MIME content types andcharacter sets which are expected to be most frequently used; althoughany valid MIME content type or character set is permitted (though notall may be supported by the tools and/or processes of a givenenvironment). They are provided here only for convenient reference.

[1048] 9.3.1 Content Types

[1049] “application/http”

[1050] “application/msword”

[1051] “application/octet-stream”

[1052] “application/pdf”

[1053] “application/postscript”

[1054] “application/rtf”

[1055] “application/sgml”

[1056] “application/sgmi-open-catalog”

[1057] “application/vnd.lotus-notes”

[1058] “application/vnd.mif”

[1059] “application/vnd.ms-excel”

[1060] “application/vnd.ms-powerpoint”

[1061] “application/vnd.ms-project”

[1062] “application/vnd.visio”

[1063] “application/vnd.wap.sic”

[1064] “application/vnd.wap.slc”

[1065] “application/vnd.wap.wbxml”

[1066] “application/vnd.wap.wmlc”

[1067] “application/vnd.wap.wmlscriptc”

[1068] “application/xml”

[1069] “image/cgm”

[1070] “image/gif”

[1071] “image/jpeg”

[1072] “image/png”

[1073] “image/tiff”

[1074] “image/vnd.dwg”

[1075] “image/vnd.dxf”

[1076] “model/vrml”

[1077] “text/css”

[1078] “text/enriched”

[1079] “text/html”

[1080] “texVplain”

[1081] “text/rtf”

[1082] “text/sgml”

[1083] “text/uri-list”

[1084] “text/vnd.wap.si”

[1085] “text/vnd.wap.sl”

[1086] “text/vnd.wap.wml”

[1087] “text/vnd.wap.wmiscript”

[1088] “text/xml”

[1089] “video/mpeg”

[1090] “video/quicktime”

[1091] 9.3.2 Character Sets

[1092] us-ascii”

[1093] “iso-8859-1”

[1094] “utf-8”

[1095] “utf-16”

[1096] “gb2312”

[1097] “iso-2022-jp”

[1098] “shiftjis”

[1099] “euc-kr”

[1100] GMA: Generalized Media Archive

[1101] 1 Scope

[1102] This document defines the Generalized Media Archive (GMA), anabstract archival model based solely on Media Attribution and ReferenceSemantics (MARS) metadata; providing a uniform, consistent, andimplementation independent model for the storage, retrieval, versioning,and access control of electronic media.

[1103] The GMA model is a component of the Metia Framework forElectronic Media. A basic understanding of the Metia Framework and MARSis presumed by this specification.

[1104] 2 Overview

[1105] The GMA is a central component of the Metia Framework and servesas the common archival model for all managed media objects controlled,accessed, transferred or otherwise manipulated by Metia Frameworkagencies.

[1106] The GMA provides a uniform, generic, and abstract organizationalmodel and functional interface to a potentially wide range of actualarchive implementations; independent of operating system, file system,repository organization, versioning mechanisms, or other implementationdetails. This abstraction facilitates the creation of tools, processes,and methodologies based on this generic model and interface which areinsulated from the internals of the GMA compliant repositories withwhich they interact.

[1107] The GMA defines specific behavior for basic storage andretrieval, access control based on user identity, versioning, automatedgeneration of variant instances, and event processing.

[1108] The identity of individual storage items is based on MARSmetadata semantics and all interaction between a client and a GMAimplementation must be expressed as MARS metadata property sets.

[1109] 3 Related Documents, Standards, and Specifications

[1110] 3.1 Metia Framework for Electronic Media

[1111] The Metia Framework is a generalized metadata driven frameworkfor the management and distribution of electronic media which defines aset of standard, open and portable models, interfaces, and protocolsfacilitating the construction of tools and environments optimized forthe management, referencing, distribution, storage, and retrieval ofelectronic media.; as well as a set of core software components (agents)providing functions and services relating to archival, versioning,access control, search, retrieval, conversion, navigation, and metadatamanagement.

[1112] 3.2 Media Attribution and Reference Semantics (MARS)

[1113] Media Attribution and Reference Semantics (MARS), a component ofthe Metia Framework, is a metadata specification framework and corestandard vocabulary and semantics facilitating the portable management,referencing, distribution, storage and retrieval of electronic media.

[1114] 3.3 Portable Media Archive (PMA)

[1115] The Portable Media Archive (PMA), a component of the MetiaFramework, is a physical organization model of a file system based datarepository conforming to and suitable for implementations of theGeneralized Media Archive (GMA) abstract archival model.

[1116] 3.4 Registry Service Architecture (REGS)

[1117] The Registry Service Architecture (REGS), a component of theMetia Framework, is a generic architecture for dynamic query resolutionagencies based on the Metia Framework and Media Attribution andReference Semantics (MARS), providing a unified interface model for abroad range of search and retrieval tools.

[1118] 4 General Architecture

[1119] A GMA manages media components and contains storage items. Theoperation of a GMA can be divided into the following five functionalunits:

[1120] Versioning

[1121] Generation

[1122] Storage

[1123] and

[1124] Retrieval

[1125] Access Control

[1126] Events

[1127] Storage and Retrieval of items is simply the act of associatingelectronic media data streams to MARS storage item identities and makingpersistent, retrievable copies of those data streams indexed by theirMARS identity (either directly or indirectly), as well as the managementof creation and modification time stamps.

[1128] Access Control is based on several controlling criteria asdefined for the environment in which the GMA resides and as stored inthe metadata of individual components managed by the GMA. Access controlis defined for entire components and never for individual items within acomponent. Access control can also be defined for media objects andmedia instances, in which case subordinate media components inherit theaccess configuration from the higher scope(s) in the case that it is notdefined specifically for the component.

[1129] Access control also includes the management of user identity androle metadata such as creator, owner, contributor, etc.

[1130] Versioning is performed only for ‘data’ items of a mediacomponent and constitutes the revision history of the data content ofthe media component. It also includes general management and updating ofcreation, modification and other time stamps. Storage or update of itemsother than the ‘data’ item neither effect the status of managementmetadata stored in the ‘meta’ item of the component (unless the item inquestion is in fact the ‘meta’ item of the component) nor are reflectedin the revision history of the component. If a revision history orparticular metadata must be maintained for any MARS identifiable body ofcontent, then that content must be identified and managed as a separatemedia component, possibly belonging to a separate media instance.

[1131] Generation is the process of automatically producing an itemeither from another item or from metadata, or both in response to ageneration or retrieval request from some client (possibly recursivelyfrom the GMA itself). The automatically produced item is typicallyderived from the ‘data’ item of a component as a variant encoding, areport of some form, a fragment or subset of the original content, orsome other derivative of the original data item.

[1132] Events concern the handling of events which may trigger otheroperations automatically in conjunction with the client specifiedoperations; typically the regeneration of items, components or instancesderived from content data and/or metadata when the content from whichthey are derived changes. Every GMA must implement the storage andretrieval functional unit in some fashion (it need not be an explicitimplementation unit), but may optionally omit any of the otherfunctional units, or allow for them to be disabled, depending on theneeds of the given application and/or environment. It is not permitted,however, for a GMA to only partially implement a functional unit; orrather, a GMA cannot claim to include a functional unit unless thebehavior of the functional unit as defined in this specification isfully implemented.

[1133] 4.1 Management -BY- Metadata

[1134] A GMA relies on specific MARS metadata (and only that metadata)in order to operate, and also defines or updates MARS metadata as partof its operation. Management and manipulation of electronic media solelyvia metadata is a fundamental goal of the Metia Framework and thus alsoof the GMA.

[1135] 4.1.1 Content versus Management Metadata

[1136] It is important to make a clear distinction between contentmetadata and management metadata. Content metadata describes thequalities and characteristics of the information content as a whole,independent of how it is managed. Management metadata, on the otherhand, is specifically concerned with the history of the physical data,such as who may retrieve or modify it, when it was created, whether auser is currently making modifications to it, what the current revisionidentifier is, etc. Content metadata is outside the scope of concern ofa GMA, and typically is stored as a separate ‘meta’ component, not a‘meta’ item, such that the actual specification of the content metadatais managed by the GMA just as any other media component. The metadatathat is of primary concern to a GMA, and which a GMA accesses, updates,and stores persistently, is the metadata associated with each component.

[1137] A GMA manages media components, and the management metadata foreach media component is stored persistently in the ‘meta’ storage itemof the media component.

[1138] A special case exists with regards to management metadata whichmight be defined at the media instance or media object scope, where thatmetadata is inherited by all sub-components of the higher scope(s). Seesection 4.2.2 for details.

[1139] 4.1.2 MARS Properties Required by GMA

[1140] The following MARS metadata properties are required by a GMA tobe defined in the input query and/or for the target data, depending onthe action being performed and which functional units are implemented.See the pseudocode in section 5 for usage details.

[1141] The functional units are represented in the table as follows:Storage & Retrieval=‘SR’, Versioning=‘V’, Access Control=‘A’,Generation=‘G’, and Events=‘E’. Property Functional Unit Actionidentifier, release, SR, V, A, G, E qualify, retrieve, language,coverage, store, remove, encoding, component, generate item identifier,release, SR, A, E lock, unlock language, coverage, encoding, componentuser, access A qualify, retrieve, store, remove, lock user A unlockrevision V qualify, retrieve, store fragment SR qualify, retrieve, storepointer SR retrieve comment V store size, pointer G generate, retrieve

[1142] 4.1.3 MARS Properties Used by GMA

[1143] The following MARS metadata properties are generated, updated, orotherwise modified by a GMA for one or more actions, depending on whichfunctional units are implemented. See the pseudocode in section 5 forusage details. Property Functional Unit Action created, modified, sizeSR store owner, creator, modifier, A store contributor user V locklocked SR lock, unlock revision V store fragment G generate

[1144] 4.1.4 Default Property Values

[1145] A GMA may assume the default values as defined by the MARSspecification for all properties which it requires but are not specifiedexplicitly. It is an error for a required property to have neither adefault MARS value nor an explicitly specified value.

[1146] 4.2 Management -OF- Metadata

[1147] In addition to relying on already defined metadata, a GMA isitself responsible for defining, updating, and maintaining themanagement metadata relevant for the ‘data’ item of each mediacomponent, which is stored persistently as the ‘meta’ item of thecomponent. In fact, most of the metadata produced by a GMA is later usedby the GMA for subsequent operations.

[1148] 4.2.1 Persistent Storage

[1149] A GMA is free to store ‘meta’ items, containing managementmetadata, in any internal format; however every GMA must accept andreturn ‘meta’ storage items as XML instances as defined in section 6 ofthis specification. Content metadata, however, constituting the datacontent of a ‘meta’ component and stored as the ‘data’ item of the‘meta’ component, must always be a valid XML instance as defined by thisspecification.

[1150] These two constraints ensure that any software agent is able toretrieve from or store to a GMA both content and management metadata asneeded, as well as any GMA may resolve inherited management metadatafrom meta components at higher scopes in a generic fashion.

[1151] 4.2.2 Inheritance and Scope

[1152] The MARS specification defines a set of simple rules for metadataproperty inheritance. In short, properties defined at a given scope arevisible at all lower scopes, and the definition of a property at a lowerscope takes precedence over any definition at a higher scope.

[1153] Management metadata may be defined at the media object or mediainstance scope, applying to (being inherited by) all sub-componentscopes.

[1154] It is the responsibility of the GMA to both retrieve and utilizeall inherited metadata properties of a component, as well as todifferentiate inherited from component specific properties when storingpersistent metadata property sets, such that only component specificproperties are stored. This ensures that changes to inherited propertiestake effect on all subsequent operations in the component scope. A GMAis free to “mirror” inherited properties at the component scope so longas absolute synchronization is maintained between the mirroredproperties and their inherited source.

[1155] A GMA may never include inherited properties in any ‘meta’storage item output as the result of a retrieve action.

[1156] 4.3 Storage and Retrieval

[1157] Storage and Retrieval of items is simply the act of associatingelectronic media data streams to MARS storage item identities and makingpersistent, retrievable copies of those data streams indexed by theirMARS identity (either directly or indirectly), as well as the managementof creation and modification time stamps.

[1158] Every GMA must implement the core storage and retrievalfunctional unit. If versioning, access control, generation, and/or eventunits are also implemented, then the storage and retrieval operationsmay be augmented in one or more ways.

[1159] A GMA is free to use any means to organize both the repository ofstorage items as well as the mapping mechanisms relating MARS identitymetadata to locations within that repository. GMA implementations mightemploy common relational or object oriented database technology, directfile system storage, or any number of custom and/or proprietarytechnologies. Regardless of the underlying implementation, a GMA mustaccept input and provide output in accordance with this specification.

[1160] 4.4 Access Control

[1161] A GMA implementation is not required to implement access control,but if access control is provided, it must conform to the behaviordefined in this specification.

[1162] Access Control of media components is based on severalcontrolling criteria as defined for the environment in which the GMAresides and as stored in the metadata of individual components managedby the GMA. Access control is defined for entire components and neverfor individual items within a component. Access control can also bedefined for media objects and media instances, in which case subordinatemedia components inherit the access configuration from the higherscope(s) in the case that it is not defined specifically for thecomponent.

[1163] The four controlling criteria for media access are:

[1164] 1. User identity

[1165] 2. Group membership(s) of user

[1166] 3. Read permission for user or group

[1167] 4. Write permission for user or group

[1168] 4.4.1 User Identity

[1169] Every user must have a unique identifier within the environmentin which the GMA operates, and the permissions must be defined accordingto the set of all users (and groups) within that environment.

[1170] A user can be a human, but also can be a software application,process, or system. This is especially important for both licensing aswell as tracking operations performed on data by automated softwareagents operating within the GMA environment.

[1171] 4.4.2 Group Membership

[1172] Any user may belong to one or more groups, and permissions can bedefined for an entire group, and thus for every member of that group.This greatly simplifies the maintenance overhead in environments withlarge numbers of users and/or high user turnover (many users coming andgoing). Permissions defined for an explicit user override permissionsdefined for a group of which the user is a member. Thus, if a group isallowed write permission to a component, but a particular user isexplicitly denied write permission for that component, then the user maynot modify the component.

[1173] 4.4.3 Read Permission

[1174] Read permission means that the user or group may retrieve a copyof the data.

[1175] The presence of a lock marker does not prohibit retrieval ofdata, only modification.

[1176] If access control is not implemented, and/or unless otherwisespecified globally for the GMA environment or for a particular archive,or explicitly defined in the metadata for any relevant scope, a GMA mustassume that all users have read permission to all content.

[1177] 4.4.4 Write Permission

[1178] Write permission means that the user or group may modify (store anew version of) the data.

[1179] Write permission equates to read permission such that every useror group which has write permission to particular content also has readpermission. This is true even if the user or group is explicitly deniedread permission otherwise.

[1180] The presence of a lock marker prohibits modification by any userother than the owner of the lock, including the owner of the componentif the lock owner and component owner are different. It is permitted fora GMA to provide a means to break a lock, but such an operation shouldnot be available to common users and should provide a means of loggingthe event and ideally notifying the lock owner of the event.

[1181] If access control is not implemented, a GMA must assume that allusers have write permission to all content.

[1182] If access control is implemented, and unless otherwise specifiedglobally for the GMA environment or for a particular archive, orexplicitly defined in the metadata for any relevant scope, a GMA mustassume that no users have write permission to any content.

[1183] Regardless of any other metadata defined access specifications(not including settings defined globally for the archive), the owner ofa component always has write access to that component.

[1184] 4.4.5 Access Levels

[1185] This specification defines a set of access levels which serve asconvenience terms when defining, specifying, or discussing the“functional mode” of a particular GMA with regard to read and writeaccess control.

[1186] Access levels can be used as configuration values by GMAimplementations to easily specify global access behavior for a given GMAwhere the implementation is capable of providing multiple access levels.Level Read Write 1 * * 2 * X 3 * A 4 A A

[1187] Note that because write permission subsumes, or includes readpermission, it is not meaningful (albeit possible) to define an accesslevel where there is read access control but no write access control.This is because giving global write permission to any user is the sameas giving global read permission, as write permission overshadows oroverrides read permission, and thus even if a particular user was deniedread access for a given storage item, they would still have implicitwrite permission, which includes read permission; making the denial ofread access ineffective.

[1188] A GMA implementation is not required to provide a particularlevel of access control; however, it must be clearly stated for eachimplementation which level, if any, above level 1 is available.Furthermore, if access control above level 2 is provided, it mustconform to the behavior defined in this specification.

[1189] 4.5 Versioning

[1190] A GMA implementation is not required to implement versioning, butif versioning is provided, it must conform to the behavior defined inthis specification.

[1191] Versioning relates to the identification, preservation, andretrieval of particular revisions (editions) in the editorial lifecycleof some discrete body of data. A version is a snapshot in time, andretrieving a past version is traveling back in time to the point whenthat snapshot was taken. Sequences of snapshots may be related bysharing a common ancestry while differing in one or more recentrevisions.

[1192] Versioning is often modeled as a tree, where a sequences ofshapshots is a path from the root of the tree, along the branches andsub-branches, to the leaves. Sequences are related by their sharedportions in the tree, being the common trunk and branches which are partof both paths from the root; up to the point where the two sequencesdiffer in a given revision, or separate/split into two distinctbranches. Each branch is given a sequential identifier (usually apositive integer), and each level of branches, sub-branches,sub-sub-branches, etc. is separated by some distinct punctuation,typically a period. At any given point of separation of two revisionsequences (paths through the tree), the branch may either divideequally, such that there become two sub-branches each of which receive anew numbering level, or the main branch may simply “grow” a sub-branchwhere the revision number sequence of the main branch continues onwardsat the same level while the sub-branch's revision number sequence gainsan additional level.

[1193] The primary (almost exclusive) motivation for having manydistinct branches is the management and maintenance of concurrent yetvariant instances of the data, which are accessible and used in somefashion in parallel. A good example of this is software, where oneversion is being used while the next version is being developed.Problems (bugs) arising in the currently used version may not exist inthe later version under development, yet one must still make thenecessary corrections to the current version. In such a case, thesoftware code revision sequence “branches”, with the development processof the newer version becoming a new sub-branch and the maintenance(bug-fix) process of the current version remaining the main branch. Bothbranches share a common beginning (path from the root) but have uniqueprogressions thereafter. In some cases, two distinct branches (relatedor otherwise) might merge at some point, making the resultant data modela graph in actuality, but it is nevertheless still common to speak interms of tree structures.

[1194] While providing a very useful and effective means to organize andmanage related editorial sequences as connected branches, the tree basedversioning model has a number of shortcomings. It allows arbitrarilydeep trees, allowing (and in some cases encouraging) the fragmentationof editorial sequences which are not meaningful nor productive inpractice. It also allows for a plethora of incompatible interpretationsapplied to the various levels in the tree, making the interchange ofhistorical information difficult, and in many cases impossible.

[1195] The MARS versioning model, which is used by every GMA, addressesthe same needs provided for in the tree based versioning model --

amely (1) the need to make (and later retrieve) snapshots along asequence of editorial revisions, (2) the need to manage separateparallel sequences of revisions, and (3) the need to relate sequenceswith shared history ? but does so in a much simpler and (mostimportantly) portable fashion.

[1196] Versioning is divided into two levels: (1) an individuallymanaged and independently accessible editorial sequences are called a‘release’ and corresponds to a branch in the tree based versioningmodel; and (2) snapshots along an editorial sequence (release) arecalled revisions and correspond to leaves in the tree based versioningmodel.

[1197] Each release is given a unique positive integer identifier.Likewise, each identified (managed) revision within a release sequenceis given a unique positive integer identifier, and the revisionnumbering sequence begins anew for each release. Releases which arederived from other releases (i.e. sub-branches growing out from parentbranches) may specify via the MARS ‘source’ property the particularrelease and revision from which they come. These three pieces ofinformation ?

elease number, revision number, and source (if any) ?

eet all three of the above defined versioning needs. A GMA whichimplements versioning is responsible only for the linear sequence ofrevisions within a media component.

[1198] A GMA implementation is not responsible for the automated orsemi-automated creation or specification of new instances relating todistinct releases (branching) nor retrieval of revisions not unique to aparticular release (paths in the tree up to the beginning of theparticular branch) from its source(s) (ancestor branches); though it isfree to offer that functionality if it so chooses. Typically, thecreation of new releases (branching) will be performed manually by ahuman editor, including the specification of ‘source’ and any otherrelevant metadata values. Other tools, external to the GMA may alsoexist to aid users in performing such operations.

[1199] Versioning is performed by a GMA only for the ‘data’ item of amedia component and that sequence of revisions constitutes the editorialhistory of the data content of the media component. The GMA is alsoresponsible for general management and updating of creation,modification and other time stamp metadata. Storage or update of itemsother than the ‘data’ item neither effect the status of managementmetadata stored in the ‘meta’ item of the component (unless the item inquestion is in fact the ‘meta’ item of the component) nor are reflectedin the revision history of the component. If a revision history orparticular metadata must be maintained for any MARS identifiable body ofcontent, then that content must be identified and managed as a separatemedia component, possibly belonging to a separate media instance.

[1200] 4.5.1 Revision Numbering Scheme

[1201] Revisions are identified by positive integer values (MARS Countvalues). The scope of each media component is unique and revision valueshave significance only within the scope of each particular mediacomponent. Revision sequences should begin with the value ‘1’ andproceed linearly without gaps.

[1202] The revision value zero ‘0’ is reserved for special use by futureversions of the GMA model. GMA implementations should neither permit norgenerate revisions with a value of zero. Doing so may result in dataand/or tools which are incompatible with future versions of thisstandard.

[1203] 4.5.2 Storage and Retrieval of Past Revisions

[1204] A GMA implementation is free to internally organize and storepast revisions in any fashion it chooses. This specification describestwo recommended methods for storing past revisions of the content of amedia component:

napshotting and reverse deltas. In some cases, more than one methodmight be applied by a GMA, depending on the nature of the media inquestion. Regardless of its internal organization and operations, a GMAis required to return any requested revision which is maintained andstored by the GMA as a complete copy.

[1205] 4.5.2.1 Snapshotting

[1206] Snapshotting is simply the process of preserving a complete copyof every revision. One takes a “snapshot” of the content at a givenpoint in time and assigns a revision number to it. Two clear benefits tosnapshotting are that it is very easy to implement, and special(possibly time consuming) regeneration operations are not needed toretrieve past revisions. The latter can be very important in anenvironment where there is heavy usage and retrieval times are aconcern. A major drawback to snapshotting is that it places heavystorage demands on the system hosting the archive. It is also veryinefficient in that the differences between revisions is typically veryslight and therefore there is a large amount of redundant informationbeing stored in the archive. It is permitted for a GMA implementation tolimit the total number of past revisions that are maintained (e.g. nomore than 10) in cases where it is not practical or feasible to storeevery past revision since the creation of the media component; in whichcase there is the additional drawback that only a limited number ofprevious revisions are maintained and data loss (of the earliestrevisions) is inevitable.

[1207] 4.5.2.2 Reverse Deltas

[1208] A delta is set of one or more editorial operations(modifications) which can be applied to a body of data to consistentlyderive another body of data. A reverse delta is a delta which allows oneto derive a previous revision from a former revision.

[1209] Rather than store the complete and total content of eachrevision, as is done with snapshotting, a GMA which uses reverse deltassimply stores the modifications necessary to derive each past revisionfrom the immediately succeeding (later) revision. A reverse delta thencan be seen as a single step backwards in time, along the sequence ofeditorial milestones represented by each revision of data. To obtain aspecific past revision, one must simply begin at the current revision,and then apply the reverse deltas in order for each previous revisionuntil the desired revision is reached.

[1210] One could just as well have forward deltas, where the deltadefines the operations needed to derive the more recent revision fromthe preceding revision (and in fact the first revision managementsystems using deltas worked this way). The drawback to forward deltas,is that once a given editorial sequence becomes sufficiently long,containing many revisions, it takes longer and longer to generate themost recent revision from the very first revision, applying all of thedeltas for all of the revisions over time. Typically, only the mostcurrent revisions are ever of interest, therefore it is much moreefficient to rather work backwards in time to retrieve previousrevisions from the most current.

[1211] The primary benefit to using reverse (or forward) deltas in a GMAimplementation is a dramatic reduction in storage demands. Since mostrevisions tend to differ from the previous revision only slightly, theGMA need only store the differences and not the entire body of contentfor every revision. This can be particularly important in environmentswhere there are frequent but slight changes to large media objects (suchas graphics or video) or where the archive must be replicated (mirrored)to multiple sites where bandwidth and/or disk space may be at a premium.

[1212] A drawback to using reverse deltas in a GMA implementation isthat they can be difficult to implement for some media types; especiallyfor complex binary encodings employing compression.

[1213] 4.6 Generation

[1214] A GMA implementation is not required to implement generation, butif generation is provided, it must conform to the behavior defined inthis specification.

[1215] Generation involves the automated creation of data streams whichare not maintained statically as such in the GMA but are derived in onemanner or another from one or more existing storage items. This includesconversions from one encoding or format to another, extraction ofportions of a component's content, auto-generation of indices, tables ofcontents, bibliographies, glossaries, etc. as new components of a mediainstance, generation of usage, history, and/or dependency reports basedon metadata values, generation of metadata profiles for use by one ormore registry services, etc.

[1216] The present version of this specification only addresses oneparticular type of generation in detail; though it is expected thatsubsequent versions of the GMA standard will specify additionalconstraints, methods, and guidelines relating to other forms ofgeneration; including those mentioned above, as well as others.

[1217] 4.6.1 Dynamic Partitioning

[1218] Dynamic partitioning is a special case of generation where afragment of the data content is returned in place of the entire ‘data’item, possibly with automatically generated hypertext links to precedingand succeeding content, and/or information about the structural(contextual) qualities of the omitted content, depending on the mediaencoding.

[1219] Dynamic partitioning can be implemented and used whether or notstatic fragments exist. Typically, static fragments are createdaccording to the most common usage, whereas dynamic partitioning isrelied upon for more specialized applications.

[1220] Dynamic partitioning is controlled by two metadata properties, inaddition to those defining the identity of the source data item: ‘size’and (optionally) ‘pointer’. The single determining factor for apartition of data is the maximum number of bytes which the fragment cancontain. The point within the data item from which the fragment isextracted can be specified by an optional ‘pointer’ property value (ifthe encoding supports it).

[1221] The GMA then extracts the requested fragment, starting either atthe beginning of the data item or at the point specified by the pointervalue, and collecting the largest coherent and meaningful sequence ofcontent up to but not exceeding the specified number of content bytes.What constitutes a coherent and meaningful sequence will depend on themedia encoding of the data and possibly interpretations inherent in theGMA implementation itself. Any fragment of a data item must employ thesame media encoding as the data item and be a valid data streamaccording to the rules and constraints of that encoding.

[1222] 4.7 Events

[1223] A GMA implementation is not required to implement event handling,but if event handling is provided, it must conform to the behaviordefined in this specification.

[1224] The event handling functionality defined for a GMA is verysimple, owing to the generic and abstract model defined by MARSmetadata.

[1225] For each storage item, media component, media instance, or mediaobject, a set of one or more MARS property sets defining someoperation(s) can be associated with each MARS action, such that whenthat action is successfully performed on that item, component, instance,or object, the associated operations are executed. Automated operationsare thus defined for the source data and not for any target data whichmight be automatically generated as a result of an event triggeredoperation.

[1226] Each operation property set must specify the necessary metadataproperties to be executed correctly, such as the action(s) to performand possibly including the CGI URL of the agency which is to perform theaction. The GMA is free to employ customized mechanisms for determininghow a given operation is to be performed, and by which softwarecomponent or agent, if otherwise unspecified in the property set usingstandard MARS and Metia Framework conventions.

[1227] In the case of a remove action, which will result in the removalof any events defined at the same scope as the removed data, the GMA isstill required to execute any operations associated with the removeaction defined at that scope, after successful removal of the data, eventhough the operations themselves are part of the data removed and willnever be executed again in that context.

[1228] The most common type of operation for events is a compound‘generate store’ action which generates a new target item from an inputitem and stores it persistently in the GMA, taking into account allversioning and access controls in force. This is useful forautomatically updating components such as the TOC (Table of Contents) orindex when a data component is modified, or for generating staticfragments of an updated data component.

[1229] A GMA is free to associate automated operations globally for anygiven action, such that the operations are applied within the scope ofthe data being acted upon. A GMA is also free to associate automatedoperations with triggers other than MARS actions, such as reoccurringtimes or days of the week, for the purpose of removing expired data suchas via a ‘locate remove’ compound action, where the locate query definesthe expiration based on a comparison of the current date with theend-pov or modified properties. A GMA, however, may only defineautomated operations in terms of MARS property sets.

[1230] 5 Actions

[1231] The following sections provide pseudocode for the core GMAoperations corresponding to Metia Framework agent actions.

[1232] Note that the pseudocode is intended to be illustrative andinformal, and not a rigorous specification of any particularimplementation.

[1233] For every action, the significant metadata properties areidentified. Properties which are highlighted in italics will be assigneddefault values as specified in MARS if not otherwise defined. Underlinedproperties may be optional in certain circumstances, depending on thefunctional units implemented or active for the GMA.

[1234] Retrieval of metadata for a given media component scope includesall inherited metadata from media object and media instance scopes.

[1235] 5.1 qualify

[1236] Verify that a particular storage item (possibly qualified forrevision or fragment) exists (has an identity) in the archive; or, ifread access control is active, that the item exists and the user hasread access for the item. The storage item may have zero content bytes.If read access control is active, if the user does not have read accessto the item, yet it exists, the action will nevertheless return ‘false’.This is a security feature to prevent unauthorized users fromdetermining which storage items exist, even if they cannot access them.

[1237] Synonyms:

[1238] Verify, Check, Exists

[1239] Properties:

[1240] identifier, release, language, coverage, encoding, component,item, user, access,

[1241] revision, fragment

[1242] Pseudocode: Boolean qualify (MARS item) { Retrieve MRN from MARSitem; Resolve MRN to archive location for item; if (item exists inarchive) { if (Versioning and input item property is equal to ‘data’) {Retrieve metadata for component; Retrieve value of revision propertyfrom component metadata; if (component revision not equal to inputrevision) { if (input revision cannot be retrieved or regenerated) {Return ‘false’; } } if (input fragment value specified) { if (fragmentcannot be retrieved or regenerated) { return ‘false’; } } } if (ReadAccess Control) { Retrieve metadata for component; Retrieve value ofaccess property from component metadata; if (NOT (user has write accessOR has read access)) { Return ‘false’; } } Return ‘true’; } else { if(AutoGeneration  AND the item can be generated from one or more othersource items in the archive) { for each source item { if(self.qualify(source_item) equal to ‘true’) { Return ‘true’; } } } }Return ‘false’; }

[1243] Comments:

[1244] Mapping the MARS property set to a MRN ensures that an actualstorage item is

[1245] specified, and if any Identity properties were omitted in theinput MARS property set, the default values are applied. It also freesthe GMA implementation from tracking any changes in default valuesspecified by the MARS standard.

[1246] 5.2 retrieve

[1247] Synonyms:

[1248] Read, Open, Check Out

[1249] Properties:

[1250] identifier, release, language, coverage, encoding, component,item, user, access,

[1251] revision, fragment, pointer.

[1252] Pseudocode: DataStream retrieve (MARS item) { if(self.qualify(item) equal to ‘false’) { Report error and Abort; }Retrieve MRN from MARS item; Resolve MRN to archive location for item;if (item does not exist in archive) { Determine best source item forrequested target item; Return self.generate(source_item, item); } if(input item property is equal to ‘data’) { if (Versioning) { Retrievemetadata for component; Retrieve value of revision property fromcomponent metadata; if (component revision not equal to input revision){ Set target revision to input revision; } else { Set target revision tocurrent component revision; } if (input fragment value specified) {Retrieve or regenerate fragment for target revision; } elsif (inputpointer specified and pointer is single ID reference) { Retrieve idmapfor component for target revision; Resolve pointer to fragment number;if (pointer resolves to fragment number) { Retrieve or regeneratefragment for target revision; } else { Retrieve or regenerate data itemfor target revision; } } else { Retrieve or regenerate data item fortarget revision; } Return data item or fragment for revision asDataStream; } else { if (input fragment value specified) {  Retrieve orregenerate specified fragment for data item; } elsif (input pointerspecified and pointer is #ID reference) { Retrieve idmap for component;Resolve pointer to fragment number; if (pointer resolves to fragmentnumber) { Retrieve or regenerate fragment; } else { Retrieve data item;} } else { Retrieve data item; } Return data item or fragment asDataStream; } } Return input specified item as DataStream; }

[1253] Comments:

[1254] Verification of read access and existence of particular revisionor fragment of a data item is handled by the qualify( ) action, so theretrieve( ) action need not recheck these.

[1255] 5.3 store

[1256] Synonyms:

[1257] Write, Save, Check In

[1258] Properties:

[1259] identifier, release, language, coverage, encoding, component,item, user, access,

[1260] revision, fragment, created, modified, owner, creator, modifier,contributor, comment

[1261] Pseudocode: store (MARS item, DataStream input) { Retrieve MRNfrom MARS input; if (lock item does not exist for component) {self.lock(item); // user must have write permission to succeed }Retrieve metadata for component; if (input item property is equal to‘data’) { if (data item exists) { if (Versioning) { if (input data itemidentical to current data item) { Notify user that revisions areidentical; self.unlock(item); Exit; } Set comment in component metadatato input comment; Store component metadata to meta item for component;Move current data item under current revision; Move current meta itemunder current revision; if (Static Fragments) { Move current idmap itemunder current revision; Move current fragments under current rev.(optional); } Increment revision number in component metadata; }Retrieve owner from component metadata; Retrieve contributor fromcomponent metadata; if (owner not equal to user and user not incontributor) { Add input user to contributor in component metadata; } }else { if (Versioning) { Set revision in component metadata to ‘1’; }Set creator in component metadata to input user; Set owner in componentmetadata to input user; Set created in component metadata to currenttime; } Set modifier in component metadata to input user; Set modifiedin component metadata to current time; Set size in component metadata tobytes in input item; Store component metadata to meta item forcomponent; } Store input DataStream to input specified item;self.unlock(item); }

[1262] Comments:

[1263] When storing a data item, the revision cannot be specified. TheGMA must begin all revision sequences from ‘1’ and increment eachsubsequent revision linearly.

[1264] 5.4 remove

[1265] Remove one or more storage items defined for a given scope,including any events associated with any actions at the specified scope.

[1266] Synonyms:

[1267] Delete

[1268] Properties:

[1269] identifier, release, language, coverage, encoding, component,item, user, access

[1270] Pseudocode: remove (MARS property_set) { if (identifier propertynot defined) { Report error and Abort; } MARS[] items = self.locate(property_set) foreach item in items[] { Retrieve MRN from MARS item; ifitem = ‘data’ // only check each component once, by data item { Retrievemetadata for component; if (Write Access Control) { Retrieve value ofaccess property from component metadata; if (user does not have writeaccess) { Report error and Abort; } } if (lock item exists forcomponent) { Retrieve value of user property from component metadata; if(input user not equal to component user) { Report error and Abort; //not lock owner } } } } foreach item in items[] { Retrieve MRN from MARSitem; if (lock item does not exist for component) { self.lock(item); }Delete data stream associated with item from system; self.unlock(item);} }

[1271] Comments:

[1272] The input MARS property set to the retrieve action must define amedia object, media instance, media component, or storage item.

[1273] Any user who has write permission for a component can remove thatcomponent.

[1274] Any user who has write permission for all components of a mediainstance can remove that media instance.

[1275] Any user who has write permission for all immediate componentsand all instances of a media object can remove that media object.

[1276] The removal of any component, instance, or object includes theremoval of all storage items and associated events within or belongingto that scope.

[1277] Any events associated with the remove action which are valid forthe scope of removed data must be executed even though thespecifications of those actions are removed along with the other storeddata.

[1278] 5.5 locate

[1279] Given a set of Identity properties, produce a listing of zero ormore storage items which match all specified properties; and if readaccess control is used, only include those items for which the user hasread access.

[1280] Synonyms:

[1281] Find, Search, List

[1282] Properties:

[1283] identifier, release, language, coverage, encoding, component,item, user, access

[1284] Pseudocode: MARS[ ] locate (MARS query) { Remove and save ‘user’property value from query, if defined; MARS[ ] items = All storage itemsmatching the MARS query; if (Read Access Control). { foreach item initems[] { Set user property in item to input user property value; if(self.qualify(item) equal to ‘false’) { Remove item from items[]; // noread permission } }  }  Return items[]; // possibly an empty list }

[1285] Comments:

[1286] The MARS property sets for each returned item are only requiredto contain values for Identity properties, i.e. identifier, release,language, coverage, encoding, component, and item. Any other includedproperties are optional and informative only. Applications may not relyon any non-Identity properties being returned by any GMA.

[1287] MARS property sets which do not fully identify a unique storageitem may NOT be returned in the result list; i.e. every Identityproperty must have an explicit value defined. Default implicit valuesshould not be applicable to any property set returned by the locateaction.

[1288] 5.6 lock

[1289] Lock a particular component in the archive. If write accesscontrol is used and the component already exists, the user is requiredto have write access for the component. Fails if a lock already existsfor the component.

[1290] Synonyms:

[1291] Check out.

[1292] Properties:

[1293] identifier, release, language, coverage, encoding, component,user, access, locked

[1294] Pseudocode: lock (MARS component) { if (lock item exists forcomponent) {  Report error and Abort; } Retrieve metadata for component;if (Write Access Control) { Retrieve value of access property fromcomponent metadata; if (user does not have write access) { Report errorand Abort; } } Create lock item for component; Set user property incomponent metadata to input user; Store component metadata to meta itemfor component; }

[1295] 5.7 unlock

[1296] Remove the lock on a given component. The user must be the ownerof the lock, defined by the user property in the component metadata.Fails if no lock exists.

[1297] Synonyms:

[1298] Check in, Release

[1299] Properties:

[1300] identifier, release, language, coverage, encoding, component,user

[1301] Pseudocode: unlock (MARS component) { if (lock item does notexist for component) { Report error and Abort; } Retrieve metadata forcomponent; Retrieve value of user property from component metadata; if(input user not equal to component user) { Report error and Abort; //not lock owner } Remove user property from component metadata; Storecomponent metadata to meta item for component; Remove lock item forcomponent; }

[1302] 5.8 generate

[1303] Generate the target item from the source item, if possible, andreturn it as a data stream.

[1304] Synonyms:

[1305] Transform, Convert, Produce, Extract

[1306] Properties:

[1307] identifier, release, language, coverage, encoding, component,item

[1308] Pseudocode: DataStream generate (MARS source_item, MARStarget_item) { if (self.qualify(source_item) equal to ‘false’) { Reporterror and Abort; // either no read access or item // does not exist inarchive... } Determine proper generation process from source to target;if (generation is not possible) { Report error and Abort; } Generatetarget from source and return as DataStream; }

[1309] Comments:

[1310] The generate action is often used in conjunction with theretrieve action when a given item does not exist in the archive, such asthe dynamic creation of a data fragment or converting from one encodingto another.

[1311] It's up to the GMA to know how to determine if a given generationis possible, typically employing the help of an external agent toresolve and perform the generation (such as a conversion agent).

[1312] 6 Serialization and Encoding of Specialized Storage Items

[1313] Several storage items defined by MARS and central to theoperation of any GMA must conform to particular serialization andencoding requirements insofar as data interchange is concerned. Actualinternal storage, encoding, and management of these items is up to eachparticular GMA implementation in some cases, but every GMAimplementation must accept and return the following storage items asdefined by this specification.

[1314] 6.1 ‘meta’ Storage Items

[1315] Every ‘meta’ storage item which is presented to a GMA for storageor returned by a GMA on retrieval must be a valid XML instanceconforming to the MARS 2.0 DTD:

[1316] Metadata property values “contained” within ‘meta’ storage itemsneed not be stored or managed internally in the GMA using XML, but everyGMA implementation must accept and return ‘meta’ items as valid XMLinstances.

[1317] 6.2 ‘data’ Storage Items within ‘meta’ Media Components

[1318] The same DTD defining the serialization of ‘meta’ storage itemsis also used to encode all ‘data’ storage items for all ‘meta’components. Although a GMA must persistently store all ‘data’ storageitems literally, it may also choose to parse and extract a copy of themetadata property values defined within meta component data items tomore efficiently determine inherited metadata properties at specificscopes within the archive.

[1319] 6.3 ‘idmap’ Storage Items

[1320] Every ‘idmap’ storage item which is presented to a GMA forstorage or returned by a GMA on retrieval must be encoded as a CSV(comma separated value) data stream defining a table with two columnswhere each row is a single mapping and where the first column/fieldcontains the value of the ‘pointer’ property defining the symbolicreference and the second column/field contains the value of the‘fragment’ property specifying the data content fragment containing thetarget of the reference. E.g.:

[1321] . . .

[1322] #EID284828,228

[1323] #EID192,12

[1324] #EID9928,3281

[1325] #EID727,340

[1326] . . .

[1327] The mapping information “contained” within ‘idmap’ storage itemsneed not be stored or managed internally in the GMA in CSV format, butevery GMA implementation must accept and return ‘idmap’ items as CSVformatted data streams.

[1328] 6.4 ‘data’ Storage Items for a specific Revision

[1329] The GMA must return the complete and valid contents of a given‘data’ storage item for a specified revision (if it exists), regardlesshow previous revisions are managed internally. Reverse deltas or otherchange summary information which must be applied in some fashion toregenerate or rebuild the desired revision must never be returned by aGMA, even if that is all that is stored for each revision data iteminternally. Only the complete data item is to be returned.

[1330] PMA: Portable Media Archive

[1331] 1 Scope

[1332] This document defines the Portable Media Archive (PMA), aphysical organization model of a file system based data repositoryconforming to and suitable for implementations of the Generalized MediaArchive (GMA) abstract archival model.

[1333] The PMA model is a component of the Metia Framework forElectronic Media. A basic understanding of the Metia Framework, the GMA,and MARS is presumed by this specification.

[1334] 2 Overview

[1335] The PMA defines an explicit yet highly portable file systemorganization for the storage and retrieval of information based on MediaAttribution and Reference Semantics (MARS) metadata. The PMA uses theMARS Identity and Item Qualifier metadata property values themselves asdirectory and/or file names, avoiding the need for a secondaryreferencing mechanism and thereby simplifying the implementation,maximizing efficiency, and producing a mnemonic organizationalstructure.

[1336] This specification only defines the physical organization of afile system, and not the processes or algorithms for accessing,manipulating, or otherwise interacting with or operating on that filesystem. Different GMA implementations based on the PMA model mayinteract with the data in different ways.

[1337] Any GMA may use a physical organization model other than the PMA.The PMA physical archival model is not a requirement of the GMA abstractarchival model. However, the PMA may nevertheless be employed by suchimplementations both as a data interchange format between disparate GMAimplementations as well as a format for storing portable backups of agiven archive.

[1338] 3 Related Documents, Standards, and Specifications

[1339] 3.1 Metia Framework for Electronic Media

[1340] The Metia Framework is a generalized metadata driven frameworkfor the management and distribution of electronic media which defines aset of standard, open and portable models, interfaces, and protocolsfacilitating the construction of tools and environments optimized forthe management, referencing, distribution, storage, and retrieval ofelectronic media; as well as a set of core software components (agents)providing functions and services relating

[1341] to archival, versioning, access control, search, retrieval,conversion, navigation, and metadata management.

[1342] 3.2 Media Attribution and Reference Semantics (MARS)

[1343] Media Attribution and Reference Semantics (MARS), a component ofthe Metia

[1344] Framework, is a metadata specification framework and corestandard vocabulary and semantics facilitating the portable management,referencing, distribution, storage and retrieval of electronic media.

[1345] 3.3 Generalized Media Archive (GMA)

[1346] The Generalized Media Archive (GMA), a component of the MetiaFramework, is an abstract archival model for the storage and managementof data based solely on Media Attribution and Reference Semantics (MARS)metadata; providing a uniform, consistent, and implementationindependent model for information storage and retrieval, versioning, andaccess control.

[1347] 4 General Architecture

[1348] The physical structure of a PMA is organized as a hierarchicaldirectory tree that follows the MARS object/instance/component/itemscoping model. Each media object comprises a branch in the directorytree, each media instance a sub-branch within the object branch, eachmedia component a sub-branch within the instance, and so forth.

[1349] Only MARS Identity and Item Qualifier property values are used.All other metadata properties (as well as Identity and Qualifierproperties) are defined and stored persistently in ‘meta’ storage items;conforming to the serialization and interchange encodings defined by theGMA specification. Because Identity and Item Qualifier properties musteither be valid MARS tokens or integer values, any such property valueis an acceptable directory or file name in all major file systems in usetoday.

[1350] 4.1 Media Object Scope

[1351] The media object scope is encoded as a directory path consistingof a sequence of nested directories, one for each character in the mediaobject ‘identifier’ property value. E.g.:

[1352] identifier=“dn9982827172”=>

/n/9/9/8/2/8/2/7/1/2/

[1353] Identifier values are broken up in this fashion in order tosupport very large numbers of media objects, possibly millions orbillions, residing in a given archive. If the identifiers were used ascomplete directory names, most file systems would support only severalhundred to several thousand media objects, depending on the file system.

[1354] Using only one character per directory ensures that there will beat most 37 child sub-directories within any given directory level (onepossible sub-directory for each character in the set [a-z0-9_] allowedin MARS token values), further satisfying the maximum directory childrenconstraints of most modern file systems (see below).

[1355] The media object scope may contain either media instancesub-scopes or media component sub-scopes; the latter defininginformation (metadata or otherwise) which is shared by or relevant toall instances of the media object.

[1356] 4.2 Media Instance Scope

[1357] The media instance scope is encoded as a nested directorysub-path within the media object scope and consisting of one directoryfor each of the property values for ‘release’, ‘language’, ‘coverage’,and ‘encoding’, in that order. E.g.:

[1358] release=“1” language=“en” coverage=“global” encoding=“xhtml”=

/en/global/xhtml/

[1359] 4.3 Media Component Scope

[1360] The media component scope is encoded as a sub-directory withineither the media object scope or media instance scope and named the sameas the component property value. E.g.:

[1361] component=“meta”=>

eta/

[1362] 4.4 Revision Scope

[1363] The revision scope, grouping the storage items for a particularrevision milestone, is encoded as a directory sub-path within the mediacomponent scope beginning with the literal directory ‘revision’ followedby a sequence of nested directories corresponding to the digits in thenon-zero padded revision property value. E.g.:

[1364] revision=“27”=>

evision/2/7/

[1365] The ‘data’ item for a given revision must be a complete and wholesnapshot of the revision, not a partial copy or set of deltas to beapplied to some other revision or item. It must be fully independent ofany other storage item insofar as its completeness is concerned.

[1366] 4.5 Fragment Scope

[1367] The fragment scope, grouping the storage items for a particularstatic fragment of the data component content, is encoded as a directorysub-path within the media component scope or revision scope andbeginning with the literal directory ‘fragment’ followed by a sequenceof nested directories corresponding to the digits in the non-zero paddedfragment property value. E.g.:

[1368] fragment=“5041”=>

ragment/5/0/4/1

[1369] 4.6 Event Scope

[1370] The event scope, grouping action triggered operations for aparticular component, instance, or object, is encoded as a directorysub-path within the media component scope, media instance scope, ormedia object scope and beginning with the literal directory ‘events’ andcontaining one or more files named the same as the MARS action propertyvalues, each file containing a valid MARS XML instance defining thesequence of operations as ordered property sets. E.g.:

[1371] events/store

[1372] events/retrieve

[1373] events/unlock

[1374] 4.7 Storage Item

[1375] The storage item is encoded as a filename within the mediacomponent, revision, or fragment scope and named the same as the itemproperty value. E.g.:

[1376] item=“data”=>

ata.6

[1377] 5 Host File System Requirements

[1378] This specification does not set minimum requirements on thecapacities of host file systems, nor absolute limits on the volume ordepth of conforming archives. However, an understanding of the variableswhich may affect portability from one file system to another isimportant if data integrity is to be maintained.

[1379] This specification does, however, define the followingrecommended minimal constraints on a host file system, which should bemet, regardless of the total capacity or other capabilities of the filesystem in question:

[1380] File and Directory Name Length: 30

[1381] Directory Depth: 64

[1382] Number of Directory Children: 100

[1383] The above specified constraints are compatible with the followingcommonly used file systems, which are therefore suitable for hosting anPMA (which also does not exceed real constraints of the given host filesystem): VFAT (Windows 95/98), NTFS (Windows NT/2000), HFS (Macintosh),HPFS (OS/2), HP/UX, UFS (Solaris), ext2 (Linux), ISO 9660 Levels 2 and 3(CDROM), and UDF (CDR/W, DVD).

[1384] There are likely many other file systems in addition to thoselisted above which are suitable for hosting an PMA.

[1385] Note that FAT (MS-DOS, Windows 3.x) and ISO 9660 Level 1 filesystems are not suitable for hosting an PMA. ISO 9660 Level 1 plusJoliet or Rock Ridge extensions may be suitable in some cases, but thisis not generally recommended.

[1386] 6 Example Archive File System

[1387] The following is a fragment of an example file systemorganization for a Portable Media Archive. The location of the directorypaths with respect to the root directory is not specified. The directoryseparator is illustrative only, and will conform to each particular filesystem in which a given archive is stored. Media object scope pathsegments are highlighted in blue, media instance scope segments in red,media component scope segments in green, revision scope segments inviolet, fragment scope segments in orange, event scope segments incrimson, and storage items in black.

[1388] d/n/9/9/8/2/8/2/7/1/2/meta/data

[1389] d/n/9/9/8/2/8/2/7/1/2/meta/meta

[1390] d/n/9/9/8/2/8/2/7/1/2/meta/revision/1/data

[1391] d/n/9/9/8/2/8/2/7/1/2/meta/revision/1/meta

[1392] d/n/9/9/8/2/8/2/7/1/2/meta/revision/2/data

[1393] d/n/9/9/81218/2/7/1/2/meta/revision/2/meta

[1394] d/n/9/9/8/218/2/7/1/2/meta/revision/3/data

[1395] d/n/9/9/8/2/8/2/7/1/2/meta/revision/3/meta

[1396] d/n/9/9/8/2/8/2/7/1/2/meta/revision/4/data

[1397] d/n/9/9/8/2/8/2/7/1/2/meta/revision/4/meta

[1398] d/n/9/9/8/2/8/2/7/1/2/meta/revision/5/data

[1399] d/n/9/9/8/2/8/2/7/1/2/meta/revision/5/meta

[1400] d/n/9/9/8/2/8/2/7/1/2/meta/events/generate

[1401] d/n/9/9/8/2/8/2/7/1/2/1/en/global/docbook/meta/data

[1402] d/n/9/9/8/2/8/2/7/1/2/1/en/global/docbook/meta/meta

[1403] d/n/9/9/8/2/8/2/7/1/2/1/en/global/docbook/meta/revision/1/data

[1404] d/n/9/9/8/2/8/2/7/1/2/1/en/global/docbook/meta/revision/1/meta

[1405] d/n/9/9/8/2/8/2/7/1/2/1/en/global/docbook/meta/revision/2/data

[1406] d/n/9/9/8/2/8/2/7/1/2/1/en/global/docbook/meta/revision/2/meta

[1407] d/n/9/9/8/2/8/2/7/1/2/1/en/global/docbook/toc/data

[1408] d/n/9/9/8/2/8/2/7/1/2/1/en/global/docbook/toc/meta

[1409] d/n/9/9/8/2/8/2/7/1/2/1/en/global/docbook/index/data

[1410] d/n/9/9/8/2/8/2/7/1/2/1/en/global/docbook/index/meta

[1411] d/n/9/9/8/2/8/2/7/1/2/1/en/global/docbook/glossary/data

[1412] d/n/9/9/8/2/8/2/7/1/2/1/en/global/docbook/glossary/meta

[1413] d/n/9/9/8/2/8/2/7/1/2/1/en/global/docbook/data/data

[1414] d/n/9/9/8/2/8/2/7/1/2/1/en/global/docbook/data/meta

[1415] d/n/9/9/8/2/8/217/1/2/1/en/global/docbook/data/revision/1/data

[1416] d/n/9/9/8/2/8/2/7/1/2/1/en/global/docbook/data/revision/1/meta

[1417] d/n/9/9/8/2/8/2/7/1/2/1/en/global/docbook/data/revision/2/data

[1418] d/n/9/9/812/8/2/7/1/2/1/en/global/docbook/data/revision/2/meta

[1419] d/n/91918/2/8/2/7/1/2/1/en/global/docbook/data/revision/3/data

[1420] d/n/9/9/8/2/8/2/7/1/2/1/en/global/docbook/data/revision/3/meta

[1421] d/n/9/9/8/2/8/2/7/1/2/1/en/global/docbook/data/revision/4/data

[1422] d/n/9/9/8/2/8/2/7/1/2/1/en/global/docbook/data/revision/4/meta

[1423] d/n/9/9/8/2/8/2/7/1/2/1/en/global/docbook/data/revision/...

[1424] d/n/9/9/8/2/8/2/7/1/2/1/en/global/docbook/data/revision/9/data

[1425] d/n/9/9/8/2/8/2/7/1/2/1/en/global/docbook/data/revision/9/meta

[1426] d/n/9/9/8/2/8/2/7/1/2/1/en/global/docbook/data/events/store

[1427] d/n/9/9/8/2/8/2/7/1/2/1/en/global/docbook/data/events/remove.8(9)

[1428] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/meta/data

[1429] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/meta/meta

[1430] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/meta/revision/1/data

[1431] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/meta/revision/1/meta

[1432] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/revision/...

[1433] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/meta/revision/9/data

[1434] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtm l/meta/revision/9/meta

[1435] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/toc/data

[1436] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/toc/meta

[1437] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/index/data

[1438] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/index/meta

[1439] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/glossary/data

[1440] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/glossary/meta

[1441] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/data

[1442] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/meta

[1443] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/idmap

[1444] d/n/9/9/8/2/812/7/1/2/1/en/global/xhtml/data/fragment/0/data

[1445] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/fragment/0/meta

[1446] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/fragment/1/data

[1447] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/fragment/1/meta

[1448] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/fragment/2/data

[1449] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/fragment/2/meta

[1450] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/fragment/3/data

[1451] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/fragment/...

[1452] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/fragment/9/data

[1453] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/fragment/9/meta

[1454] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/fragment/1/0/data

[1455] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/fragment/1/0/meta

[1456] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtm/data/fragment/...

[1457] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/fragment/5/9/data

[1458] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/fragment/5/9/meta

[1459] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/fragment/...

[1460]d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/fragment/5/9/3/2/data

[1461]d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/fragment/5/9/3/2/meta

[1462] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/revision/0/data

[1463] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/revision/0/meta

[1464] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/revision/0/...

[1465] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/revision/0/...

[1466] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/revision/3/4/data

[1467] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/revision/3/4/meta

[1468] d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/revision/3/4/id map

[1469]d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/revision/3/4/fragment/0/data

[1470]d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/revision/3/4/fragment/0/meta

[1471]d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/revision/3/4/fragment/...

[1472]d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/revision/3/4/fragment/5/9/3/2/data

[1473]d/n/9/9/8/2/8/2/7/1/2/1/en/global/xhtml/data/revision/3/4/fragment/5/9/3/2/meta

[1474] d/n/2/4/8/2/0/5/3/meta/data

[1475] d/n/2/4/8/2/0/5/3/meta/meta

[1476] d/n/2/4/8/2/0/5/3/meta/revision/. . .

[1477] d/n/2/4/8/2/0/5/3/8/en/global/cgm_(—)4/meta/data.9 (9)

[1478] d/n/2/4/8/2/0/5/3/8/en/global/cgm_(—)4/meta/meta

[1479] d/n/2/4/8/2/0/5/3/8/en/global/cgm_(—)4/meta/revision/...

[1480] d/n/2/4/8/2/0/5/3/8/en/global/cgm_(—)4/index/data

[1481] d/n/2/4/8/2/0/5/3/8/en/global/cgm_(—)4/index/meta

[1482] d/n/2/4/8/2/0/5/3/8/en/global/cgm_(—)4/data/data

[1483] d/n/2/4/8/2/0/5/3/8/en/global/cgm_(—)4/data/meta

[1484] d/n/2/4/8/2/0/5/3/8/en/global/cgm_(—)4/data/revision/1/data

[1485] d/n/2/4/8/2/0/5/3/8/en/global/cgm_(—)4/data/revision/1/meta

[1486] d/n/2/4/8/2/0/5/3/8/en/global/cgm_(—)4/data/revision/. . .

[1487] d/n/2/4/8/2/0/5/3/8/en/global/cgm_(—)4/data/revision/1/7/data

[1488] d/n/2/4/8/2/0/5/3/8/en/global/cgm_(—)4/data/revision/1/7/meta

[1489] REGS: Registry Service Architecture

[1490] 1 Scope

[1491] This document defines the Registry Service Architecture (REGS), ageneric architecture for dynamic query resolution agencies based on theMetia Framework and Media Attribution and Reference Semantics (MARS),providing a unified interface model for a broad range of search andretrieval tools.

[1492] The REGS architecture is a component of the Metia Framework forElectronic Media. A basic understanding of the Metia Framework and MARSis presumed by this specification.

[1493] 2 Overview

[1494] REGS provides a generic means to interact with any number ofspecialized search and retrieval tools using a common set of protocolsand interfaces based on the Metia Framework; namely MARS metadatasemantics and either a POSIX or CGI compliant interface. As with otherMetia Framework components, this allows for much greater flexibility inthe implementation and evolution of particular solutions whileminimizing the interdependencies between the tools and their users(human or otherwise).

[1495] Being based on MARS metadata allows for a high degree ofautomation and tight

[1496] synchronization with the archival and management systems used inthe same environment, with each registry service deriving its ownregistry database directly from the metadata stored in and maintained bythe various archives themselves; while at the same time, each registryservice is insulated from the implementation details of and changes inthe archives from which it receives its information.

[1497] Every registry service shares a common architecture andfundamental behavior, differing primarily only in the actual metadataproperties required for their particular application.

[1498] 3 Related Documents, Standards, and Specifications

[1499] 3.1 Metia Framework for Electronic Media

[1500] The Metia Framework is a generalized metadata driven frameworkfor the management and distribution of electronic media which defines aset of standard, open and portable models, interfaces, and protocolsfacilitating the construction of tools and environments optimized forthe management, referencing, distribution, storage, and retrieval ofelectronic media; as well as a set of core software components (agents)providing functions and services relating

[1501] to archival, versioning, access control, search, retrieval,conversion, navigation, and metadata management.

[1502] 3.2 Media Attribution and Reference Semantics (MARS)

[1503] Media Attribution and Reference Semantics (MARS), a component ofthe Metia Framework, is a metadata specification framework and corestandard vocabulary and semantics facilitating the portable management,referencing, distribution, storage and retrieval of electronic media.

[1504] 3.3 Generalized Media Archive (GMA)

[1505] The Generalized Media Archive (GMA), a component of the MetiaFramework, is an abstract archival model for the storage and managementof data based solely on Media Attribution and Reference Semantics (MARS)metadata; providing a uniform, consistent, and implementationindependent model for information storage and retrieval, versioning, andaccess control.

[1506] 4 Key Terms and Concepts

[1507] 4.1 Property

[1508] A property, as defined by the MARS specification, is a quality orattribute which can be assigned or related to an identifiable body ofinformation, and is defined as an ordered collection of one or morevalues sharing a common name. The name of the collection represents thename of the property and the value(s) represent the realization of thatproperty. Typically, constraints are placed on the values which mayserve as the realization of a given property.

[1509] 4.2 Property Set

[1510] A property set is any set of valid MARS metadata properties.

[1511] 4.3 Profile

[1512] A profile is a property set which, in addition to anynon-identity related properties,

[1513] explicitly defines the identity of a specific media object, mediainstance, media component, or storage item (possibly a qualified dataitem).

[1514] Default values for unspecified Identity properties are notapplied to a profile and any given profile may not have scope gaps inthe defined Identity properties (i.e. ‘item’ defined but not‘component’, etc.). Profiles must unambiguously and precisely identify amedia object, instance, component or item.

[1515] In addition to identity, the retrieval location of the archive orother repository where that information resides must be specified eitherusing the ‘location’ or ‘agency’ properties. If both are specified, theymust define the equivalent location. The additional properties includedin any given profile are defined by the registry service operating on orreturning the profile, and may not necessarily contain any additionalproperties other than those defining identity and location.

[1516] 4.4 Query

[1517] A query is a special kind of property set which defines a set ofproperty values which are to be compared to the equivalent properties inone or more profiles. A query differs from a regular property set inthat it is allowed to contain values which may deviate from the MARSspecification in the following ways:

[1518] 4.4.1 Multiple Values

[1519] Properties normally allowing only a single value may havemultiple values defined in a query.

[1520] The normal interpretation of multiple query values is to apply‘OR’ logic such that the property matches if any of the query valuesmatch any of the target values; however, a given registry service ispermitted, depending on the application, to apply ‘AND’ logic requiringthat all query values match a target value, and optionally that everytarget value is matched by a query value.

[1521] It must be clearly specified for a registry service if ‘AND’logic is being applied to multiple query value sets.

[1522] 4.4.2 Regular Expressions

[1523] Query values for properties of MARS type String may contain validPOSIX regular expressions rather than literal strings; in which case theproperty matches if the specified regular expression pattern matches thetarget value.

[1524] 4.4.3 Comparison Operators

[1525] Query values may be prefixed by one of several comparisonoperators, with one or more mandatory intervening space charactersbetween the operator and the query value.

[1526] The order of comparison for binary operators is:

[1527] query value {operator} target value

[1528] Not all comparison operators are necessarily meaningful for allproperty value types, nor are all operators required to be supported byany given registry service.

[1529] It must be clearly specified for every registry service which, ifany, comparison operators are supported in input queries.

[1530] In the rare case that a literal string value begins with acomparison operator followed by one or more intervening spaces, theinitial operator character should be preceded by a backslash character‘\’. The registry service must then identify and remove the backslashcharacter prior to any comparisons.

[1531] 4.4.3.1 Negation “!”

[1532] The property matches if the query value fails to match the targetvalue.

[1533] E.g. “! approved”.

[1534] 4.4.3.2 Less Than “<”

[1535] The property matches if the query value is less than the targetvalue.

[1536] E.g. “<2.5”.

[1537] 4.4.3.3 Greater Than”>”

[1538] The property matches if the query value is greater than thetarget value.

[1539] E.g. “>draft”.

[1540] 4.4.3.4 Less Than or Equal To “<=”

[1541] The property matches if the query value is less than or equal tothe target value.

[1542] E.g. “<=2000-09-22”.

[1543] 4.4.3.5 Greater Than or Equal To “>=”

[1544] The property matches if the query value is greater than or equalto the target value.

[1545] E.g. “>=5000”.

[1546] 4.4.4 Wildcard Value Operator

[1547] Any property in a query may have specified for it the specialvalue “*”, regardless of property type, which effectively matches anydefined value in any target. The wildcard value does not however match aproperty which has no value defined for it.

[1548] The wildcard value operator may be preceded by the negationoperator. This special wildcard operator is particularly useful forspecifying the level of Identity scoping of the returned profiles for aregistry which stores profiles for multiple levels of scope (see sectionXXX). It is also used to match properties where all that is of interestis that they have some value defined but it doesn't matter what thevalue actually is. Or, when combined with the negation operator, tomatch properties which have no value defined. The latter is useful forvalidation and quality assurance processes to isolate information whichis missing mandatory or critical metadata properties.

[1549] In the rare case that a literal string value equals the wildcardvalue operator, the wildcard value operator must be preceded by abackslash character ‘\’. The registry service must then identify andremove the backslash character prior to any comparisons.

[1550] 5 General Architecture

[1551] Every registry service shares the following common features andqualities with regards to its implementation and operation (see FIG. 1).

[1552] MARS metadata profiles are collected from one or more archives,and combined into an optimized, specialized database for performingsearches, according to the nature of the particular registry service.

[1553] The internal organization and operation of the registry serviceis totally independent from and ignorant of the internal organizationand operation of each archive from which it receives profiles.

[1554] All registry services implement the MARS ‘locate’ action, andonly that action, which must be explicitly specified in every inputquery.

[1555] Users (human or otherwise) submit MARS metadata search queries tothe registry service and receive zero or more MARS metadata profilesmatching the search query, possibly scored and ordered by relevance.

[1556] The MARS metadata-based query interface completely hides theinternal organization and operation of the registry service from theuser.

[1557] The implementation of any registry service can be modified oreven replaced entirely by a different implementation with no impact toor dependency upon archives or users.

[1558] New archives can contribute profiles to a registry service withno special knowledge or modification by the registry service.

[1559] 5.1 Defining Characteristics of a Registry Service

[1560] A registry service is defined by the following threecharacteristics:

[1561] 1. the metadata properties it allows and requires in each profile

[1562] 2. the metadata properties it allows and requires in a givensearch query

[1563] 3. whether returned profiles are scored and ordered according torelevance

[1564] These three criteria define the interface by which the registryservice interacts with all source archives and all users.

[1565] All other criteria are hidden within and totally open to theparticular implementation of the registry service, so long as theimplementation conforms to the general behavior and operation otherwisedefined for all registry services by this specification.

[1566] 5.2 Generation of the Registry Database

[1567] A particular registry service will extract from a given archive(or be provided by or on behalf of the archive) the profiles for alltargets of interest which a user may search on, and containing allproperties defined for each target which are relevant to the particularregistry.

[1568] Depending on the nature of the registry, this may includeprofiles for both abstract media objects, media instances, and mediacomponents as well as physical storage items or even qualified dataitems. Some property values for a profile may be dynamically generatedspecifically for the registry, such as the automated identification orextraction of keywords or index terms from the data content, or similaroperations.

[1569] The profiles from several archives may be combined by theregistry service into a single search space for a given application orenvironment. The location and/or agency properties serve todifferentiate the source locations of the various archives from whichthe individual profiles originate.

[1570] 5.3 Resolution of Search Results

[1571] All registry services define and search over profiles, and thoseprofiles define bodies of information at either an abstract or physicalscope; i.e. media objects, media instances, media components, or storageitems. A given registry database might contain profiles for only asingle level of scope or for several levels of scope.

[1572] If a query does not define any Identity properties, then theregistry service must return all matching profiles regardless of scope;however, if the query defines one or more Identity properties, then allprofiles returned by the registry service must be of the same level ofscope as the lowest scoped Identity property defined in the searchquery.

[1573] Note that a specific level of scope can be specified in a queryby using the special wildcard value “*” for the scope of interest (e.g.“component=meta item=*...” to find all storage items within metacomponents which otherwise match the remainder of the query).

[1574] Each set of profiles returned for a given search may beoptionally scored and ordered by relevance, according to how closelythey match the input query. The score must be returned as a value to theMARS ‘relevance’ property. The criteria for determining relevance is upto each registry service, but it must be defined as a percentage valuewhere zero indicates no match whatsoever, 100 indicates a “perfect”match (however that is defined by the registry service), and a valuebetween zero and 100 reflects the closeness of the match

[1575] proportionally. The scale of relevance from zero to 100 isexpected to be linear.

[1576] 5.4 Minimum and Maximum Thresholds

[1577] A registry service can be directed by a user, or byimplementation, to apply two types of thresholds to constrain the totalnumber of profiles returned by a given search. Both thresholds may beapplied together to the same search results.

[1578] 5.4.1 Maximum Size

[1579] The MARS ‘size’ property can be specified in the search query (orapplied implicitly by the registry service) to define the maximum numberof profiles to be returned.

[1580] In the case that profiles are scored and ordered by relevance,the maximum number of profiles are to be taken from the highest scoringprofiles.

[1581] 5.4.2 Minimum Relevance

[1582] The MARS ‘relevance’ property can be specified in the searchquery (or applied implicitly by the registry service) to define theminimum score which must be equaled or exceeded by every profilereturned.

[1583] Note that specifying a minimum relevance of 100 requires thattargets match perfectly, allowing one to choose between best match andabsolute match.

[1584] 5.5 Serialization of Input/Output

[1585] All property sets (including profiles and queries) which arereceived/imported by and returned/exported from a registry service via adata stream must be encoded as XML instances conforming to the MARS DTD.This includes sets of profiles extracted from a given archive, searchqueries received from client applications, and sets of profiles returnedas the results of a search.

[1586] If multiple property sets are defined in a MARS XML instanceprovided as a search request, then each property set is processed as aseparate query, and the results of each query returned in the orderspecified, combined in a single XML instance. Any sorting or reductionby specified thresholds is done per each query only. The results fromthe separate queries are not combined in any fashion other thanconcatenated into the single returned XML instance. Every registryservice is free to organize and manage its internal registry databaseusing whatever means is optimal for that particular service. It is notrequired to utilize or preserve any XML encoding of the profiles.

[1587] 5.5.1 Human User Interface Recommendations

[1588] Most registry services will include an additional CGI or otherweb based component which provides a human-usable interface forspecifying queries and accessing search results. This will typically actas a specialized proxy to the general registry service, converting theuser specified metadata to a valid MARS query and then mapping thereturned XML instance containing the target profiles to HTML for viewingand selection. Although such an interface or proxy component is outsidethe scope of this specification proper, the following

[1589] recommendations, if followed, should provide for a certain degreeof consistency between various human user interfaces to registryservices. The set of profiles should be presented as a sequence oflinks, preserving any ordering based on relevance scoring.

[1590] Each profile link should be encoded as an (X)HTML ‘a’ elementwithin a block element or other visually distinct element (‘p’, ‘li’,‘td’, etc.).

[1591] The URL value of the ‘href’ attribute of the ‘a’ element shouldbe constructed from the profile, based on the ‘location’ and/or ‘agency’properties, which will resolve to the content of (or access interfacefor) the target.

[1592] If the ‘relevance’ property is defined in the profile, its valueshould begin the content of the ‘a’ element, differentiated clearly fromsubsequent content by punctuation or structure such as parentheses,comma, colon, separate table column, etc.

[1593] If the ‘title’ property is defined in the profile, its valueshould complete the content of the ‘a’ element. Otherwise, a (possiblypartial) MRN should be constructed from the profile and complete thecontent of the ‘a’ element.

[1594] Examples:

[1595] <html>

[1596] <body>

[1597] <p>

[1598] <a href=“http://xyz.com/GMA?action=retrieve&identifier=. ..”>(98) Foo</a>

[1599] </p>

[1600] <p>

[1601] <a href=“http://xyz.com/GMA?action=retrieve&identifier=. ..”>(87) Bar</a>

[1602] <p>

[1603] <a href=“http://xyz.com/GMA?action=retrieve&identifier=. ..”>(37) Bas</a>

[1604] </p>

[1605] </body>

[1606] </html>

[1607] <html>

[1608] <body>

[1609] <table>

[1610] <tr>

[1611] <th>Score</th>

[1612] <th>Target</th>

[1613] </tr>

[1614] <tr>

[1615] <td>98</td>

[1616] <td><a

[1617] href=“http://xyz.com/GMA?action=retrieve&identifier=. ..”>Foo</a></td>

[1618] </tr>

[1619] <tr>

[1620] <td>87</td>

[1621] <td><a href=“http://xyz.com/GMA?action=retrieve&identifier=. ..”>Bar</a></td>

[1622] </tr>

[1623] <tr>

[1624] <td>37</td>

[1625] <td><a

[1626]href=“http://xyz.com/GMA?action=retrieve&identifier=...”>Bas</a></td>

[1627] </tr>

[1628] </table>

[1629] </body>

[1630] </html>.12 (16)

[1631] 6 Core Registry Services

[1632] The following registry services are defined as sub-components ofthe Metia Framework. For each registry service, a brief description isprovided, as well as a specification of which metadata properties arerequired or allowed for profiles and for queries. No discussion isprovided regarding the scoring and ordering of search results byrelevance. Each registry service is free to provide such functionalityas needed and in a fashion optimal to the nature of the particularregistry service.

[1633] The ‘action’ property is required to be specified with the value‘locate’ in all registry service queries, therefore it is not includedin the required query property specifications for each registry service.Likewise, the ‘relevance’ and ‘size’ properties are allowed for allinput queries to all registry services, therefore they are also notexplicitly listed in the allowed query property specifications for eachregistry service.

[1634] 6.1 Metadata Registry Service (META-REGS)

[1635] META-REGS provides for searching the complete metadata propertysets (including inherited values) for all identifiable bodies ofinformation, concrete or abstract; including media objects, mediainstances, media components, storage items and qualified data items.

[1636] The results of a search are a set of profiles defining zero ormore targets at the lowest level of Identity scope for which there is aproperty defined in the search query. All targets in the results will beof the same level of scope, even if the registry database containstargets at all levels of scope.

[1637] The wildcard operator can be used to force a particular level ofscope in the results. E.g. to define media instance scope, only oneinstance property need be defined with the wildcard operator value (e.g.“language=*”); to define media component scope, the component propertycan be defined with the wildcard operator value (e.g. “component=*”);etc. The registry service may not require nor expect that any particularinstance property be used, nor that only one property be used. It is notpermitted for two or more instance properties to

[1638] have both wildcard and negated wildcard operator values in agiven input query.

[1639] The default behavior is to provide the best matches for thespecified query; however, by defining in the input query a value of 100for the ‘relevance’ property, the search results will only include thosetargets which match the query perfectly. The former is most useful forgeneral browsing and exploration of the information space and the latterfor collection and extraction of specifically defined data.

[1640] 6.1.1 Profile Properties

[1641] Required: All Identity properties required to uniquely identifythe body of information in question, as well as either the ‘location’ or‘agency’ property. Allowed: Any valid MARS property, presumably alldefined MARS properties applicable to the body of information inquestion. It is recommended that the ‘title’ property be defined for allprofiles, whenever possible.

[1642] 6.1.2 Query Properties

[1643] Required: No specific properties required. At least one propertymust be specified in the search query other than the ‘action’ property.Allowed: Any valid MARS property.

[1644] 6.2 Content Registry Service (CON-REGS)

[1645] CON-REGS provides for searching the textual content of all mediainstances within the included archives. It corresponds to a traditional“free-text index” such as those employed by most web sites.

[1646] The results of a search are a set of profiles defining zero ormore data component data storage items or qualified data items.

[1647] Profiles are defined only for data storage items and qualifieddata items (e.g. fragments) which belong to the data component of amedia instance. Other components and other items belonging to the datacomponent are not to be included in the search space of a CON-REGSregistry service. Note that in addition to actual fragment items,profiles for “virtual” fragments can be defined using a combination ofthe ‘pointer’ and (if needed) ‘size’ properties, where appropriate forthe media type (e.g. for specific sections of an XML document instance).

[1648] For each data item, the ‘keywords’ property is defined as theunique, minimal set of index terms for the item, typically correspondingto the morphological base forms (linguistic forms independent ofinflection, derivation, or other lexical variation) excluding common“stop” words such as articles (“the”, “a”), conjunctions (“and”,“whereas”), or semantically weak words (“is”, “said”), etc. It isexpected that the same tools and processes for distilling arbitraryinput into minimal forms are applied both in the generation of theregistry database as well as for all relevant input query values.

[1649] The scope of the results, such as whole data items versusfragments, can be controlled using the ‘fragment’ property and thewildcard value operator “*” for the scope of interest. E.g.,“fragment=*” will force the search to only return profiles of matchingfragments and not of whole data items; whereas “fragment=!*” will onlyreturn profiles of matching whole data storage items. If otherwiseunspecified, all matching profiles for all items will be returned, whichmay result in redundant information being identified.

[1650] A human user interface will likely hide the definition of the‘fragment’ property behind a more mnemonic selection list or set ofcheckboxes, providing a single field of input for the query keywords.

[1651] If a given value for the ‘keywords’ property contains multiplewords separated by white space, then all of the words must occuradjacent to one another in the order specified in the target content.Note that this is not the same as multiple property values where eachvalue contains a single word. The set of all property values (stringset) constitute an OR set, while the set of words in a single propertyvalue (string) constitute a sequence (phrase) in the target. White spacesequences in the query property value can be expected to match any whitespace sequence in the target content, even if those two sequences arenot identical (i.e. a space can match a newline or tab, etc.).

[1652] A human user interface will have to provide a mechanism fordefining multiple ‘keywords’ property values as well as fordifferentiating between values having a single word and valuescontaining phrases or other white space delimited sequences of words. Inthe interest of consistency across registry services, it is recommendedthat when a single value input field is provided for the ‘keywords’ orsimilar property, white space is used to separate multiple values bydefault and multi-word values are specially delimited by quotes toindicate that they constitute the same value (e.g. the field [a b “c1 c2c3” d] defines four values, the third of which has three words).

[1653] It is permitted for special operators or commands to CON-REGS tobe interspersed within the set of ‘keywords’ values, such as thosecontrolling boolean logic, maximal or minimal adjacency distances, etc.It is up to the registry service to ensure that no ambiguity arisesbetween CON-REGS operators and actual values nor between REGS specialoperators and CON-REGS operators. REGS special operators always takeprecedence over any CON-REGS operators.

[1654] 6.2.1 Profile Properties

[1655] Required: All Identity and Qualifier properties required touniquely identify each data storage item or qualified data item inquestion; either the ‘location’ or ‘agency’ property; and the ‘keywords’property containing a unique, minimal set of index terms for the item inquestion.

[1656] Allowed: All required properties, as well as the ‘title’ property(recommended).

[1657] 6.2.2 Query Properties

[1658] Required: The ‘keywords’ property containing the set of indexterms to search on (may need to be distilled into a unique, minimal setof base forms by the registry service).

[1659] Allowed: All required properties, as well as the ‘fragment’property with either wildcard value or negated wildcard value only.

[1660] 6.3 Typological Registry Service (TYPE-REGS)

[1661] TYPE-REGS provides for searching the set of ‘class’ propertyvalues (including any inherited values) for all media instancesaccording to the typologies defined for the information contained in theincluded archives. The results of a search are a set of profilesdefining zero or more media instances.

[1662] In addition to the literal matching of property values, such asprovided by META-REGS, TYPE-REGS also matches query values to targetvalues taking into account one or more “IS-A” type hierarchies asdefined by the typologies employed such that a target value which is anancestor of a query value also matches (e.g. a query value of “dog”would be expected to match a target value of “animal”). If only exactmatching is required (such that e.g. “dog” only matches “dog”) thenMETA-REGS should be used.

[1663] TYPE-REGS does not differentiate between classification valueswhich belong to different typologies nor for any ambiguity which mayarise from a single value being associated with multiple typologies withpossibly differing semantics. It is only responsible for efficientlylocating all media instances which have defined values matching those inthe input query. If conflicts arise from the use of multiple typologieswithin the same environment, it is recommended that separate registrydatabases be generated and referenced for each individual typology.

[1664] 6.3.1 Profile Properties

[1665] Required: The Identity properties which explicitly and completelydefine the media instance, one or more values defined for the ‘class’property, as well as either the ‘location’ or ‘agency’ property.

[1666] Allowed: All required properties, as well as the ‘title’ property(recommended).

[1667] 6.3.2 Query Properties

[1668] Required: The ‘class’ property containing the set ofclassifications to search on.

[1669] Allowed: Only the ‘class’ property is allowed in search queries.

[1670] 6.4 Dependency Registry Service (DEP-REGS)

[1671] DEP-REGS provides for searching the set of Association propertyvalues (including any inherited values) which can be representedexplicitly using MARS Identity semantics for all bodies of informationin the included archives. The results of a search are a set of profilesdefining zero or more targets matching the search query.

[1672] DEP-REGS is used to identify relationships between bodies ofinformation within a given environment such as a document which servesas the basis for a translation to another language or a conversion to analternate encoding, a high level diagram which summarizes the basiccharacteristics of a much more detailed low level diagram or set ofdiagrams, a reusable documentation component which serves as partialcontent for a higher level component, etc. The ability to determine suchrelationships, many of which may be implicit in the data in question, iscrucial for managing large bodies of information where changes to onemedia instance may impact the validity or quality of other instances.

[1673] For example, to locate all targets which immediately include agiven instance in their content, one would construct a query containingthe ‘includes’ property with a value consisting of a URI identifying theinstance, such as an MRN. DEP-REGS would then return profiles for alltargets which include that instance as a value of their ‘includes’property. Similarly, to locate all targets which contain referentiallinks to a given instance, one would construct a query containing the‘refers’ property with a value identifying the instance. DEP-REGS can beseen as a specialized form of META-REGS, based only on the minimal setof Identity and Association properties. Furthermore, in contrast to theliteral matching of property values such as performed by META-REGS,DEP-REGS matches Association query values to target values by applyingon-the-fly mapping between all equivalent URI values when makingcomparisons; such as between an MRN and an Agency CGI URL, or betweentwo non-string-identical Agency CGI URLs, which both define the sameresource (regardless of location). Note that if the META-REGSimplementation provides such equivalence mapping of URI values, then aseparate DEP-REGS implementation is not absolutely required; though onemay be still employed on the basis of efficiency, given the highlyreduced number of properties in a DEP-REGS profile.

[1674] 6.4.1 Profile Properties

[1675] Required: The Identity properties which explicitly and completelydefine the body of information, all defined Association properties, aswell as either the ‘location’ or ‘agency’ property.

[1676] Allowed: All required properties, as well as the ‘title’ property(recommended).

[1677] 6.4.2 Query Properties

[1678] Required: One or more Association properties.

[1679] Allowed: One or more Association properties.

[1680] 6.5 Process Registry Service (PRO-REGS)

[1681] PRO-REGS provides for searching over sequences of state or eventidentifiers (state chains) which are associated with specific componentsof or locations within procedural documentation or other forms oftemporal information.

[1682] The results of a search are a set of profiles defining zero ormore targets matching the search query.

[1683] PRO-REGS can be used for, among other things, “process sensitivehelp” where a unique identifier is associated with each significantpoint in procedures or operations defined by procedural documentation,and software which is monitoring, guiding, and/or managing the procedurekeeps a record of the procedural states activated or executed by theuser. At any time, the running history of executed states can be passedto PRO-REGS as a query to locate documentation which most closelymatches that sequence of states or events, up to the point of thecurrent state, so that the user receives precise information about howto proceed with the given procedure or operation exactly from where theyare. The procedural documentation would presumably be encoded using someform of functional markup (e.g. SGML, XML, HTML) and generation of theprofiles identifying paths to states or steps in the proceduraldocumentation would be automatically generated based on analysis of thedata content, recursively extracting the paths of special stateidentifiers embedded in the markup and producing a profile identifying aqualified data item to each particular point in the documentation usingthe ‘pointer’ property.

[1684] 6.5.1 Profile Properties

[1685] Required: The Identity properties which explicitly and completelydefine the body of information, the ‘class’ property defining thesequence of state identifiers up to the information in question, as wellas either the ‘location’ or ‘agency’ property.

[1686] Allowed: All required properties, as well as the ‘title’ property(recommended).

[1687] 6.5.2 Query Properties

[1688] Required: The ‘class’ property defining a sequence of stateidentifiers based on user navigation history.

[1689] Allowed: Only the ‘class’ property is allowed in search queries.

1. A method of maintaining data in an object oriented programmingenvironment comprising: defining a set of persistent data entities eachhaving a predetermined level of abstraction and scope; and defining aset of related data entities having a hierarchical plurality of levelsof abstraction such that the scope identified for data entities at ahigher level of abstraction encompasses the scope of those related dataentities at a lower level of abstraction, said set of related dataentities including a plurality of related data entities at a commonlevel of abstraction.
 2. A method as claimed in claim 1, wherein saidlevel of abstraction and scope is defined using metadata properties. 3.A method as claimed in claim 2, wherein the metadata properties at ahigher level of level of abstraction are inherited by a lower level ofabstraction.
 4. A method as claimed in claim 4, wherein the metadatainherited from said higher level of abstraction by said lower level ofabstraction is replaced by defining particular metadata for said lowerlevel of abstraction.
 5. A computer program stored on a tangible mediumand comprising executable code for execution on a computer, said code,when executed, causing said computer to carry out the method accordingto claim
 1. 6. A computer program as claimed in claim 5, wherein saidcomputer program is stored in a computer readable medium.
 7. A archivalsystem comprising persistent storage adapted to store a plurality ofdata entities each having a predetermined level of abstraction andscope, wherein a set of related data entities have a hierarchicalplurality of levels of abstraction such that the scope identified fordata entities at a higher level of abstraction encompasses the scope ofthose related data entities at a lower level of abstraction, said set ofrelated data entities including a plurality of related data entities ata common level of abstraction, wherein said storage is distributedwithin an object oriented programming environment.
 8. A system asclaimed in claim 7, wherein said persistent storage is provided by atleast one server.
 9. A system as claimed in claim 8, wherein said atleast one server is adapted to be connected to a network.